aboutsummaryrefslogtreecommitdiffstats
path: root/mm/rmap.c
diff options
context:
space:
mode:
authorLee Schermerhorn <lee.schermerhorn@hp.com>2008-10-18 23:26:53 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-20 11:52:31 -0400
commitaf936a1606246a10c145feac3770f6287f483f02 (patch)
tree8b1ca7fabb5c749ffdecd654519889c6c2ed2fb6 /mm/rmap.c
parent64d6519dda3905dfb94d3f93c07c5f263f41813f (diff)
vmscan: unevictable LRU scan sysctl
This patch adds a function to scan individual or all zones' unevictable lists and move any pages that have become evictable onto the respective zone's inactive list, where shrink_inactive_list() will deal with them. Adds sysctl to scan all nodes, and per node attributes to individual nodes' zones. Kosaki: If evictable page found in unevictable lru when write /proc/sys/vm/scan_unevictable_pages, print filename and file offset of these pages. [akpm@linux-foundation.org: fix one CONFIG_MMU=n build error] [kosaki.motohiro@jp.fujitsu.com: adapt vmscan-unevictable-lru-scan-sysctl.patch to new sysfs API] Signed-off-by: Lee Schermerhorn <lee.schermerhorn@hp.com> Signed-off-by: Rik van Riel <riel@redhat.com> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Signed-off-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/rmap.c')
-rw-r--r--mm/rmap.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/mm/rmap.c b/mm/rmap.c
index 7e60df99018e..7e90bebbeb6c 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -181,7 +181,7 @@ void __init anon_vma_init(void)
181 * Getting a lock on a stable anon_vma from a page off the LRU is 181 * Getting a lock on a stable anon_vma from a page off the LRU is
182 * tricky: page_lock_anon_vma rely on RCU to guard against the races. 182 * tricky: page_lock_anon_vma rely on RCU to guard against the races.
183 */ 183 */
184static struct anon_vma *page_lock_anon_vma(struct page *page) 184struct anon_vma *page_lock_anon_vma(struct page *page)
185{ 185{
186 struct anon_vma *anon_vma; 186 struct anon_vma *anon_vma;
187 unsigned long anon_mapping; 187 unsigned long anon_mapping;
@@ -201,7 +201,7 @@ out:
201 return NULL; 201 return NULL;
202} 202}
203 203
204static void page_unlock_anon_vma(struct anon_vma *anon_vma) 204void page_unlock_anon_vma(struct anon_vma *anon_vma)
205{ 205{
206 spin_unlock(&anon_vma->lock); 206 spin_unlock(&anon_vma->lock);
207 rcu_read_unlock(); 207 rcu_read_unlock();