linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] x86/entry,lockdep: Improve IRQ state tracking
@ 2020-05-28 14:05 Peter Zijlstra
  2020-05-28 14:05 ` [PATCH v2 1/6] x86/entry: Clarify irq_{enter,exit}_rcu() Peter Zijlstra
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Peter Zijlstra @ 2020-05-28 14:05 UTC (permalink / raw)
  To: mingo, will, tglx; +Cc: x86, linux-kernel, a.darwish, rostedt, bigeasy, peterz

Ahmed and Sebastian wanted additional lockdep_assert*() macros and ran
into header hell.

Move the IRQ state into per-cpu variables, which removes the dependency on
task_struct, which is what generated the header-hell.

And fix IRQ state tracking to not be affected by lockdep_off() (it really
should not have been anyway) and extends IRQ state tracking across (x86)
NMIs.

They now survive a kbuild+perf-top load.

Changes since v1:

 - this_cpu_inc_return() fix
 - reordered patches
 - fixed up changelogs
 - fixed the actual NMI bits; we can't use IF on exit.


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-05-29 19:38 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-28 14:05 [PATCH v2 0/6] x86/entry,lockdep: Improve IRQ state tracking Peter Zijlstra
2020-05-28 14:05 ` [PATCH v2 1/6] x86/entry: Clarify irq_{enter,exit}_rcu() Peter Zijlstra
2020-05-28 14:05 ` [PATCH v2 2/6] x86/entry: Rename trace_hardirqs_off_prepare() Peter Zijlstra
2020-05-28 14:05 ` [PATCH v2 3/6] lockdep: Change hardirq{s_enabled,_context} to per-cpu variables Peter Zijlstra
2020-05-29 16:16   ` Peter Zijlstra
2020-05-29 19:38     ` Peter Zijlstra
2020-05-28 14:05 ` [PATCH v2 4/6] lockdep: Remove lockdep_hardirq{s_enabled,_context}() argument Peter Zijlstra
2020-05-28 14:05 ` [PATCH v2 5/6] lockdep: Prepare for NMI IRQ state tracking Peter Zijlstra
2020-05-28 14:05 ` [PATCH v2 6/6] x86/entry: Fix NMI vs " Peter Zijlstra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).