[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140807081321.GI19379@twins.programming.kicks-ass.net>
Date: Thu, 7 Aug 2014 10:13:21 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Frederic Weisbecker <fweisbec@...il.com>
Cc: Dave Jones <davej@...hat.com>,
Linux Kernel <linux-kernel@...r.kernel.org>
Subject: Re: WARN_ON_ONCE(in_nmi()) hit in irq_work_queue_on
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!
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists