Re: WARN_ON_ONCE(in_nmi()) hit in irq_work_queue_on

From: Frederic Weisbecker
Date: Thu Aug 07 2014 - 09:18:49 EST


On Thu, Aug 07, 2014 at 03:15:36PM +0200, Peter Zijlstra wrote:
> 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 ;-)

I'm a bit responsible for that mess since I created quite some flavours of nohz kicks
all around :)

But now they should be more unified.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/