Re: [PATCH 2/2] mm: page allocator: Do not drain per-cpu lists viaIPI from page allocator context

From: Peter Zijlstra
Date: Thu Jan 12 2012 - 10:52:48 EST


On Thu, 2012-01-12 at 15:37 +0000, Mel Gorman wrote:
> On Thu, Jan 12, 2012 at 04:18:12PM +0100, Peter Zijlstra wrote:
> > On Wed, 2012-01-11 at 10:11 +0000, Mel Gorman wrote:
> > > At least one bug report has
> > > been seen on ppc64 against a 3.0 era kernel that looked like a bug
> > > receiving interrupts on a CPU being offlined.
> >
> > Got details on that Mel? The preempt_disable() in on_each_cpu() should
> > serialize against the stop_machine() crap in unplug.
>
> I might have added 2 and 2 together and got 5.
>
> The stack trace clearly was while sending IPIs in on_each_cpu() and
> always when under memory pressure and stuck in direct reclaim. This was
> on !PREEMPT kernels where preempt_disable() is a no-op. That is why I
> thought get_online_cpu() would be necessary.

For non-preempt the required scheduling of stop_machine() will have to
wait even longer. Still there might be something funny, some of the
hotplug notifiers are ran before the stop_machine thing does its thing
so there might be some fun interaction.
--
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/