aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
authorKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>2009-09-21 20:01:37 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-22 10:17:29 -0400
commita731286de62294b63d8ceb3c5914ac52cc17e690 (patch)
treec321e14500ec264e37fd103ffa71c7b133088010 /mm/page_alloc.c
parentb35ea17b7bbf5dea35faa0de11030acc620c3197 (diff)
mm: vmstat: add isolate pages
If the system is running a heavy load of processes then concurrent reclaim can isolate a large number of pages from the LRU. /proc/vmstat and the output generated for an OOM do not show how many pages were isolated. This has been observed during process fork bomb testing (mstctl11 in LTP). This patch shows the information about isolated pages. Reproduced via: ----------------------- % ./hackbench 140 process 1000 => OOM occur active_anon:146 inactive_anon:0 isolated_anon:49245 active_file:79 inactive_file:18 isolated_file:113 unevictable:0 dirty:0 writeback:0 unstable:0 buffer:39 free:370 slab_reclaimable:309 slab_unreclaimable:5492 mapped:53 shmem:15 pagetables:28140 bounce:0 Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Acked-by: Rik van Riel <riel@redhat.com> Acked-by: Wu Fengguang <fengguang.wu@intel.com> Reviewed-by: Minchan Kim <minchan.kim@gmail.com> Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r--mm/page_alloc.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index b6d0d09557ef..afda8fd16484 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2134,16 +2134,18 @@ void show_free_areas(void)
2134 } 2134 }
2135 } 2135 }
2136 2136
2137 printk("Active_anon:%lu active_file:%lu inactive_anon:%lu\n" 2137 printk("active_anon:%lu inactive_anon:%lu isolated_anon:%lu\n"
2138 " inactive_file:%lu" 2138 " active_file:%lu inactive_file:%lu isolated_file:%lu\n"
2139 " unevictable:%lu" 2139 " unevictable:%lu"
2140 " dirty:%lu writeback:%lu unstable:%lu buffer:%lu\n" 2140 " dirty:%lu writeback:%lu unstable:%lu buffer:%lu\n"
2141 " free:%lu slab_reclaimable:%lu slab_unreclaimable:%lu\n" 2141 " free:%lu slab_reclaimable:%lu slab_unreclaimable:%lu\n"
2142 " mapped:%lu shmem:%lu pagetables:%lu bounce:%lu\n", 2142 " mapped:%lu shmem:%lu pagetables:%lu bounce:%lu\n",
2143 global_page_state(NR_ACTIVE_ANON), 2143 global_page_state(NR_ACTIVE_ANON),
2144 global_page_state(NR_ACTIVE_FILE),
2145 global_page_state(NR_INACTIVE_ANON), 2144 global_page_state(NR_INACTIVE_ANON),
2145 global_page_state(NR_ISOLATED_ANON),
2146 global_page_state(NR_ACTIVE_FILE),
2146 global_page_state(NR_INACTIVE_FILE), 2147 global_page_state(NR_INACTIVE_FILE),
2148 global_page_state(NR_ISOLATED_FILE),
2147 global_page_state(NR_UNEVICTABLE), 2149 global_page_state(NR_UNEVICTABLE),
2148 global_page_state(NR_FILE_DIRTY), 2150 global_page_state(NR_FILE_DIRTY),
2149 global_page_state(NR_WRITEBACK), 2151 global_page_state(NR_WRITEBACK),
@@ -2171,6 +2173,8 @@ void show_free_areas(void)
2171 " active_file:%lukB" 2173 " active_file:%lukB"
2172 " inactive_file:%lukB" 2174 " inactive_file:%lukB"
2173 " unevictable:%lukB" 2175 " unevictable:%lukB"
2176 " isolated(anon):%lukB"
2177 " isolated(file):%lukB"
2174 " present:%lukB" 2178 " present:%lukB"
2175 " mlocked:%lukB" 2179 " mlocked:%lukB"
2176 " dirty:%lukB" 2180 " dirty:%lukB"
@@ -2197,6 +2201,8 @@ void show_free_areas(void)
2197 K(zone_page_state(zone, NR_ACTIVE_FILE)), 2201 K(zone_page_state(zone, NR_ACTIVE_FILE)),
2198 K(zone_page_state(zone, NR_INACTIVE_FILE)), 2202 K(zone_page_state(zone, NR_INACTIVE_FILE)),
2199 K(zone_page_state(zone, NR_UNEVICTABLE)), 2203 K(zone_page_state(zone, NR_UNEVICTABLE)),
2204 K(zone_page_state(zone, NR_ISOLATED_ANON)),
2205 K(zone_page_state(zone, NR_ISOLATED_FILE)),
2200 K(zone->present_pages), 2206 K(zone->present_pages),
2201 K(zone_page_state(zone, NR_MLOCK)), 2207 K(zone_page_state(zone, NR_MLOCK)),
2202 K(zone_page_state(zone, NR_FILE_DIRTY)), 2208 K(zone_page_state(zone, NR_FILE_DIRTY)),