diff options
author | Mel Gorman <[email protected]> | 2011-01-13 15:46:22 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2011-01-13 17:32:37 -0800 |
commit | 0abdee2bd4118366c62349a304f81537be69af33 (patch) | |
tree | c013abd2dd49b3837d033eb4d32dfb57984d273e /kernel/trace/trace_workqueue.c | |
parent | 1741c87757448cedd03224f01586504f9256415d (diff) |
mm: kswapd: use the order that kswapd was reclaiming at for sleeping_prematurely()
Before kswapd goes to sleep, it uses sleeping_prematurely() to check if
there was a race pushing a zone below its watermark. If the race
happened, it stays awake. However, balance_pgdat() can decide to reclaim
at order-0 if it decides that high-order reclaim is not working as
expected. This information is not passed back to sleeping_prematurely().
The impact is that kswapd remains awake reclaiming pages long after it
should have gone to sleep. This patch passes the adjusted order to
sleeping_prematurely and uses the same logic as balance_pgdat to decide if
it's ok to go to sleep.
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