Messages in this thread Patch in this message | | | Date | Tue, 9 Nov 2010 11:33:37 +0000 | From | Mel Gorman <> | Subject | Re: [PATCH 1/2] mm: page allocator: Adjust the per-cpu counter threshold when memory is low |
| |
On Fri, Oct 29, 2010 at 12:40:02PM -0700, Andrew Morton wrote: > > ... > > > > Follow-on patch? > > Sometime, please. >
How does this look?
==== CUT HERE ==== mm: vmscan: Comment on why kswapd reduces the per-cpu vmstat threshold
While kswapd is awake, the per-cpu vmstat threshold is reduced to reduce per-cpu drift to acceptable levels. Add a comment explaining why.
Signed-off-by: Mel Gorman <mel@csn.ul.ie> --- mm/vmscan.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/mm/vmscan.c b/mm/vmscan.c index 7966110..ba39948 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2378,6 +2378,19 @@ static int kswapd(void *p) */ if (!sleeping_prematurely(pgdat, order, remaining)) { trace_mm_vmscan_kswapd_sleep(pgdat->node_id); + + /* + * vmstat counters are not perfectly + * accurate and the estimated value + * for counters such as NR_FREE_PAGES + * can deviate from the true value by + * nr_online_cpus * threshold. To + * avoid the zone watermarks being + * breached while under pressure, we + * reduce the per-cpu vmstat threshold + * while kswapd is awake and restore + * them before going back to sleep. + */ set_pgdat_percpu_threshold(pgdat, calculate_normal_threshold); schedule();
| |