On Thu, Aug 07, 2014 at 01:44:58AM +0200, Frederic Weisbecker wrote: > In fact the problem has arised since the recent irq work patches I did.
No, those just added the WARN, previously we send the resched IPI, and that's equally wrong from NMI context. > There I've changed tick_nohz_full_kick() to use irq_work_queue_on() instead > of irq_work_queue() so it has become NMI unsafe by accident. > > So I'd rather suggest this instead of queuing two levels of irq_work: > +void tick_nohz_full_kick(void) > +{ > + if (!tick_nohz_full_cpu(smp_processor_id())) > + irq_work_queue(&__get_cpu_var(nohz_full_kick_work)); > +} Indeed, that's better. Thanks!
pgpHZBu8GsKSG.pgp
Description: PGP signature