diff options
| author | Mel Gorman <mgorman@suse.de> | 2014-06-04 16:07:35 -0700 |
|---|---|---|
| committer | Jiri Slaby <jslaby@suse.cz> | 2014-07-02 12:06:09 +0200 |
| commit | c4c34dd67a3588a00713407f797468c02454ca5b (patch) | |
| tree | f6e9e44cde23513dcb38f43a0b5b137102e1d4ba /include | |
| parent | 79e24e2ea96ce5e7c3aa2865d7ff0887f6f53daf (diff) | |
mm: vmscan: do not throttle based on pfmemalloc reserves if node has no ZONE_NORMAL
commit 675becce15f320337499bc1a9356260409a5ba29 upstream.
throttle_direct_reclaim() is meant to trigger during swap-over-network
during which the min watermark is treated as a pfmemalloc reserve. It
throttes on the first node in the zonelist but this is flawed.
The user-visible impact is that a process running on CPU whose local
memory node has no ZONE_NORMAL will stall for prolonged periods of time,
possibly indefintely. This is due to throttle_direct_reclaim thinking the
pfmemalloc reserves are depleted when in fact they don't exist on that
node.
On a NUMA machine running a 32-bit kernel (I know) allocation requests
from CPUs on node 1 would detect no pfmemalloc reserves and the process
gets throttled. This patch adjusts throttling of direct reclaim to
throttle based on the first node in the zonelist that has a usable
ZONE_NORMAL or lower zone.
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Mel Gorman <mgorman@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions
