remove static variable mm/page-writeback.c:total_pages
Subsystems (2)
PATCH 1/1 remove static variable mm/page-writeback.c:total_pages
page-writeback.c has a static local variable "total_pages", which is the total number of pages in the system.
There is a global variable "vm_total_pages", which is the total number of pages the VM controls.
Both are assigned from the return value of nr_free_pagecache_pages().
This patch removes the local variable and uses the global variable in that place.
One more issue with the local static variable "total_pages" is that it is not updated when new pages are hot-added. Since vm_total_pages is updated when new pages are hot-added, this patch fixes that problem too.
Signed-off-by Chandra Seetharaman <[email protected]>
--
mm/page-writeback.c +4 -7
@@ -45,7 +45,6 @@*/ static long ratelimit_pages =32 ; -static long total_pages;/* The total number of pages in the machine. */ static int dirty_exceeded __cacheline_aligned_in_smp; /* Dirty mem may be over limit *//*
@@ -125,7 +124,7 @@ get_dirty_limits(long *pbackground, longint unmapped_ratio;long background;long dirty; -unsigned long available_memory = total_pages; +unsigned long available_memory = vm_total_pages;struct task_struct *tsk;#ifdef CONFIG_HIGHMEM
@@ -140,7 +139,7 @@ get_dirty_limits(long *pbackground, long unmapped_ratio =100 - ((global_page_state (NR_FILE_MAPPED ) +global_page_state (NR_ANON_PAGES )) *100 ) / - total_pages; + vm_total_pages; dirty_ratio = vm_dirty_ratio;if (dirty_ratio > unmapped_ratio /2 )
@@ -493,7 +492,7 @@ void laptop_sync_completion(void)static void set_ratelimit (void ) { - ratelimit_pages = total_pages / (num_online_cpus () *32 ); + ratelimit_pages = vm_total_pages / (num_online_cpus () *32 );if (ratelimit_pages <16 ) ratelimit_pages =16 ;if (ratelimit_pages *PAGE_CACHE_SIZE >4096 *1024 )
@@ -522,9 +521,7 @@ void __init page_writeback_init(void)long buffer_pages =nr_free_buffer_pages ();long correction; - total_pages =nr_free_pagecache_pages (); - - correction = (100 *4 * buffer_pages) / total_pages; + correction = (100 *4 * buffer_pages) / vm_total_pages;if (correction <100 ) { dirty_background_ratio *= correction;
Signature · 11 lines
----------------------------------------------------------------------
Chandra Seetharaman | Be careful what you choose....
- [email protected] | .......you may get it.
----------------------------------------------------------------------
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>