aboutsummaryrefslogtreecommitdiff
path: root/kernel/trace/trace_workqueue.c
diff options
context:
space:
mode:
authorMel Gorman <[email protected]>2011-01-13 15:46:21 -0800
committerLinus Torvalds <[email protected]>2011-01-13 17:32:37 -0800
commit1741c87757448cedd03224f01586504f9256415d (patch)
treee8f3bace5f0cd1652a3a2a682189b19f7b3af875 /kernel/trace/trace_workqueue.c
parent9950474883e027e6e728cbcff25f7f2bf0c96530 (diff)
mm: kswapd: keep kswapd awake for high-order allocations until a percentage of the node is balanced
When reclaiming for high-orders, kswapd is responsible for balancing a node but it should not reclaim excessively. It avoids excessive reclaim by considering if any zone in a node is balanced then the node is balanced. In the cases where there are imbalanced zone sizes (e.g. ZONE_DMA with both ZONE_DMA32 and ZONE_NORMAL), kswapd can go to sleep prematurely as just one small zone was balanced. This alters the sleep logic of kswapd slightly. It counts the number of pages that make up the balanced zones. If the total number of balanced pages is more than a quarter of the zone, kswapd will go back to sleep. This should keep a node balanced without reclaiming an excessive number of pages. Signed-off-by: Mel Gorman <[email protected]> Reviewed-by: Minchan Kim <[email protected]> Reviewed-by: KAMEZAWA Hiroyuki <[email protected]> Reviewed-by: Eric B Munson <[email protected]> Cc: Simon Kirby <[email protected]> Cc: KOSAKI Motohiro <[email protected]> Cc: Shaohua Li <[email protected]> Cc: Dave Hansen <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Rik van Riel <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'kernel/trace/trace_workqueue.c')
0 files changed, 0 insertions, 0 deletions