Re: [PATCH] mm/swap: lru drain on memory reclaim workqueue

From: Tejun Heo
Date: Tue May 31 2016 - 17:01:21 EST


On Tue, May 31, 2016 at 02:50:15PM -0600, Keith Busch wrote:
> + system_mem_wq = alloc_workqueue("events_mem_unbound", WQ_UNBOUND | WQ_MEM_RECLAIM,

So, WQ_MEM_RECLAIM on a shared workqueue doesn't make much sense.
That flag guarantees single concurrency level to the workqueue. How
would multiple users of a shared workqueue coordinate around that?
What prevents one events_mem_unbound user from depending on, say,
draining lru? If lru draining requires a rescuer to guarantee forward
progress under memory pressure, that rescuer worker must be dedicated
for that purpose and can't be shared.

Thanks.

--
tejun