diff options
author | KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> | 2009-09-21 20:01:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-22 10:17:27 -0400 |
commit | 4b02108ac1b3354a22b0d83c684797692efdc395 (patch) | |
tree | 9f65d6e8e35ddce940e7b9da6305cf5a19e5904e /drivers/base/node.c | |
parent | c6a7f5728a1db45d30df55a01adc130b4ab0327c (diff) |
mm: oom analysis: add shmem vmstat
Recently we encountered OOM problems due to memory use of the GEM cache.
Generally a large amuont of Shmem/Tmpfs pages tend to create a memory
shortage problem.
We often use the following calculation to determine the amount of shmem
pages:
shmem = NR_ACTIVE_ANON + NR_INACTIVE_ANON - NR_ANON_PAGES
however the expression does not consider isolated and mlocked pages.
This patch adds explicit accounting for pages used by shmem and tmpfs.
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Acked-by: Rik van Riel <riel@redhat.com>
Reviewed-by: Christoph Lameter <cl@linux-foundation.org>
Acked-by: Wu Fengguang <fengguang.wu@intel.com>
Cc: David Rientjes <rientjes@google.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 'drivers/base/node.c')
-rw-r--r-- | drivers/base/node.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/base/node.c b/drivers/base/node.c index b560c17f6d4e..1fe5536d404f 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c | |||
@@ -85,6 +85,7 @@ static ssize_t node_read_meminfo(struct sys_device * dev, | |||
85 | "Node %d FilePages: %8lu kB\n" | 85 | "Node %d FilePages: %8lu kB\n" |
86 | "Node %d Mapped: %8lu kB\n" | 86 | "Node %d Mapped: %8lu kB\n" |
87 | "Node %d AnonPages: %8lu kB\n" | 87 | "Node %d AnonPages: %8lu kB\n" |
88 | "Node %d Shmem: %8lu kB\n" | ||
88 | "Node %d KernelStack: %8lu kB\n" | 89 | "Node %d KernelStack: %8lu kB\n" |
89 | "Node %d PageTables: %8lu kB\n" | 90 | "Node %d PageTables: %8lu kB\n" |
90 | "Node %d NFS_Unstable: %8lu kB\n" | 91 | "Node %d NFS_Unstable: %8lu kB\n" |
@@ -117,6 +118,7 @@ static ssize_t node_read_meminfo(struct sys_device * dev, | |||
117 | nid, K(node_page_state(nid, NR_FILE_PAGES)), | 118 | nid, K(node_page_state(nid, NR_FILE_PAGES)), |
118 | nid, K(node_page_state(nid, NR_FILE_MAPPED)), | 119 | nid, K(node_page_state(nid, NR_FILE_MAPPED)), |
119 | nid, K(node_page_state(nid, NR_ANON_PAGES)), | 120 | nid, K(node_page_state(nid, NR_ANON_PAGES)), |
121 | nid, K(node_page_state(nid, NR_SHMEM)), | ||
120 | nid, node_page_state(nid, NR_KERNEL_STACK) * | 122 | nid, node_page_state(nid, NR_KERNEL_STACK) * |
121 | THREAD_SIZE / 1024, | 123 | THREAD_SIZE / 1024, |
122 | nid, K(node_page_state(nid, NR_PAGETABLE)), | 124 | nid, K(node_page_state(nid, NR_PAGETABLE)), |