diff options
author | KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> | 2009-09-21 20:01:32 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-22 10:17:27 -0400 |
commit | c6a7f5728a1db45d30df55a01adc130b4ab0327c (patch) | |
tree | 36649bc6ebb959841a5097c699968722cfd99c4d /mm | |
parent | 71de1ccbe1fb40203edd3beb473f8580d917d2ca (diff) |
mm: oom analysis: Show kernel stack usage in /proc/meminfo and OOM log output
The amount of memory allocated to kernel stacks can become significant and
cause OOM conditions. However, we do not display the amount of memory
consumed by stacks.
Add code to display the amount of memory used for stacks in /proc/meminfo.
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Reviewed-by: Christoph Lameter <cl@linux-foundation.org>
Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
Reviewed-by: Rik van Riel <riel@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/page_alloc.c | 3 | ||||
-rw-r--r-- | mm/vmstat.c | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 494c09196c30..4e050f325ebd 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -2177,6 +2177,7 @@ void show_free_areas(void) | |||
2177 | " mapped:%lukB" | 2177 | " mapped:%lukB" |
2178 | " slab_reclaimable:%lukB" | 2178 | " slab_reclaimable:%lukB" |
2179 | " slab_unreclaimable:%lukB" | 2179 | " slab_unreclaimable:%lukB" |
2180 | " kernel_stack:%lukB" | ||
2180 | " pagetables:%lukB" | 2181 | " pagetables:%lukB" |
2181 | " unstable:%lukB" | 2182 | " unstable:%lukB" |
2182 | " bounce:%lukB" | 2183 | " bounce:%lukB" |
@@ -2201,6 +2202,8 @@ void show_free_areas(void) | |||
2201 | K(zone_page_state(zone, NR_FILE_MAPPED)), | 2202 | K(zone_page_state(zone, NR_FILE_MAPPED)), |
2202 | K(zone_page_state(zone, NR_SLAB_RECLAIMABLE)), | 2203 | K(zone_page_state(zone, NR_SLAB_RECLAIMABLE)), |
2203 | K(zone_page_state(zone, NR_SLAB_UNRECLAIMABLE)), | 2204 | K(zone_page_state(zone, NR_SLAB_UNRECLAIMABLE)), |
2205 | zone_page_state(zone, NR_KERNEL_STACK) * | ||
2206 | THREAD_SIZE / 1024, | ||
2204 | K(zone_page_state(zone, NR_PAGETABLE)), | 2207 | K(zone_page_state(zone, NR_PAGETABLE)), |
2205 | K(zone_page_state(zone, NR_UNSTABLE_NFS)), | 2208 | K(zone_page_state(zone, NR_UNSTABLE_NFS)), |
2206 | K(zone_page_state(zone, NR_BOUNCE)), | 2209 | K(zone_page_state(zone, NR_BOUNCE)), |
diff --git a/mm/vmstat.c b/mm/vmstat.c index 138bed53706e..ceda39b63d7e 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c | |||
@@ -639,6 +639,7 @@ static const char * const vmstat_text[] = { | |||
639 | "nr_slab_reclaimable", | 639 | "nr_slab_reclaimable", |
640 | "nr_slab_unreclaimable", | 640 | "nr_slab_unreclaimable", |
641 | "nr_page_table_pages", | 641 | "nr_page_table_pages", |
642 | "nr_kernel_stack", | ||
642 | "nr_unstable", | 643 | "nr_unstable", |
643 | "nr_bounce", | 644 | "nr_bounce", |
644 | "nr_vmscan_write", | 645 | "nr_vmscan_write", |