[PATCH v4 7/8] lockdep: Change hardirq{s_enabled,_context} to per-cpu variables
Peter Zijlstra
peterz at infradead.org
Tue Jun 30 19:40:19 AEST 2020
On Tue, Jun 30, 2020 at 07:59:39AM +0200, Ahmed S. Darwish wrote:
> Peter Zijlstra wrote:
>
> ...
>
> > -#define lockdep_assert_irqs_disabled() do { \
> > - WARN_ONCE(debug_locks && !current->lockdep_recursion && \
> > - current->hardirqs_enabled, \
> > - "IRQs not disabled as expected\n"); \
> > - } while (0)
>
> ...
>
> > +#define lockdep_assert_irqs_disabled() \
> > +do { \
> > + WARN_ON_ONCE(debug_locks && this_cpu_read(hardirqs_enabled)); \
> > +} while (0)
>
> I think it would be nice to keep the "IRQs not disabled as expected"
> message. It makes the lockdep splat much more readable.
>
> This is similarly the case for the v3 lockdep preemption macros:
>
> https://lkml.kernel.org/r/20200630054452.3675847-5-a.darwish@linutronix.de
>
> I did not add a message though to get in-sync with the IRQ macros above.
Hurmph.. the file:line output of a splat is usually all I look at, also
__WARN_printf() generates such atrocious crap code that try and not use
it.
I suppose I should do a __WARN_str() or something, but then people are
unlikely to want to use that, too much variation etc. :/
Cursed if you do, cursed if you don't.
More information about the Linuxppc-dev
mailing list