Re: [v2 PATCH 7/9] mm: vmscan: check if the demote target node is contended or not

From: Yang Shi
Date: Mon Apr 15 2019 - 18:06:41 EST




On 4/11/19 9:06 AM, Dave Hansen wrote:
On 4/10/19 8:56 PM, Yang Shi wrote:
When demoting to PMEM node, the target node may have memory pressure,
then the memory pressure may cause migrate_pages() fail.

If the failure is caused by memory pressure (i.e. returning -ENOMEM),
tag the node with PGDAT_CONTENDED. The tag would be cleared once the
target node is balanced again.

Check if the target node is PGDAT_CONTENDED or not, if it is just skip
demotion.
This seems like an actively bad idea to me.

Why do we need an *active* note to say the node is contended? Why isn't
just getting a failure back from migrate_pages() enough? Have you
observed this in practice?

The flag will be used to check if the target node is contended or not before moving the page into the demotion list. If the target node is contended (i.e. GFP_NOWAIT would likely fail), the page reclaim code even won't scan anonymous page list on swapless system. It will just try to reclaim page cache. This would save some scanning time.

Thanks,
Yang