Re: [PATCH 3/4] mm, page_alloc: Drain per-cpu pages from workqueue context

From: Mel Gorman
Date: Mon Jan 23 2017 - 18:04:47 EST


On Mon, Jan 23, 2017 at 03:55:01PM -0500, Tejun Heo wrote:
> Hello, Mel.
>
> On Mon, Jan 23, 2017 at 08:04:12PM +0000, Mel Gorman wrote:
> > What is the actual mechanism that does that? It's not something that
> > schedule_on_each_cpu does and one would expect that the core workqueue
> > implementation would get this sort of detail correct. Or is this a proposal
> > on how it should be done?
>
> If you use schedule_on_each_cpu(), it's all fine as the thing pins
> cpus and waits for all the work items synchronously. If you wanna do
> it asynchronously, right now, you'll have to manually synchronize work
> items against the offline callback manually.
>

Is the current implementation and what it does wrong in some way? I ask
because synchronising against the offline callback sounds like it would
be a bit of a maintenance mess for relatively little gain.

--
Mel Gorman
SUSE Labs