Re: WARN_ON_ONCE(in_nmi()) hit in irq_work_queue_on

Peter Zijlstra
2014-08-07T13:15:48Z

[-- Attachment #1: Type: text/plain, Size: 894 bytes --]

On Thu, Aug 07, 2014 at 02:58:55PM +0200, Frederic Weisbecker wrote:
> On Thu, Aug 07, 2014 at 10:13:21AM +0200, Peter Zijlstra wrote:
> > 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.
>
> Well the scheduler IPI was rather used for remote kicks before we had remote irq
> work. This includes local kicks as well as the caller could need to kick
> anywhere. As in inc_nr_running().
>
> But for strict local kicks, as in perf, we were using tick_nohz_full_kick() which has
> been using irq work for a while. But it got broken when we replaced it to call irq_work_queue_on
> instead of irq_work_queue.

OK, clearly I made a mess of things in my head ;-)

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]