mm: numa: Use a two-stage filter to restrict pages being migrated for unlikely task...
authorMel Gorman <mgorman@suse.de>
Mon, 12 Nov 2012 09:17:07 +0000 (09:17 +0000)
committerMel Gorman <mgorman@suse.de>
Tue, 11 Dec 2012 14:42:54 +0000 (14:42 +0000)
commite42c8ff2999de1239a57d434bfbd8e9f2a56e814
treefd1975853a79bf28356d86a4822e8cd2111129a8
parentbac0382c6ad764156025978845147e5a6eccca09
mm: numa: Use a two-stage filter to restrict pages being migrated for unlikely task<->node relationships

Note: This two-stage filter was taken directly from the sched/numa patch
"sched, numa, mm: Add the scanning page fault machinery" but is
only a partial extraction. As the end result is not necessarily
recognisable, the signed-offs-by had to be removed. Will be added
back if requested.

While it is desirable that all threads in a process run on its home
node, this is not always possible or necessary. There may be more
threads than exist within the node or the node might over-subscribed
with unrelated processes.

This can cause a situation whereby a page gets migrated off its home
node because the threads clearing pte_numa were running off-node. This
patch uses page->last_nid to build a two-stage filter before pages get
migrated to avoid problems with short or unlikely task<->node
relationships.

Signed-off-by: Mel Gorman <mgorman@suse.de>
mm/mempolicy.c