diff options
author | Kirill A. Shutemov <kirill.shutemov@linux.intel.com> | 2016-07-26 18:26:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-07-26 19:19:19 -0400 |
commit | 65c453778aea374a46597f4d9826274d1eaf7338 (patch) | |
tree | 4210852e253bcea95da5b2973d7be93a535ee3a1 /drivers/base/node.c | |
parent | fc127da085c26beb89f83ad804cf73422c3b6855 (diff) |
mm, rmap: account shmem thp pages
Let's add ShmemHugePages and ShmemPmdMapped fields into meminfo and
smaps. It indicates how many times we allocate and map shmem THP.
NR_ANON_TRANSPARENT_HUGEPAGES is renamed to NR_ANON_THPS.
Link: http://lkml.kernel.org/r/1466021202-61880-27-git-send-email-kirill.shutemov@linux.intel.com
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
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 | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/base/node.c b/drivers/base/node.c index 560751bad294..51c7db2c4ee2 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c | |||
@@ -113,6 +113,8 @@ static ssize_t node_read_meminfo(struct device *dev, | |||
113 | "Node %d SUnreclaim: %8lu kB\n" | 113 | "Node %d SUnreclaim: %8lu kB\n" |
114 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | 114 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
115 | "Node %d AnonHugePages: %8lu kB\n" | 115 | "Node %d AnonHugePages: %8lu kB\n" |
116 | "Node %d ShmemHugePages: %8lu kB\n" | ||
117 | "Node %d ShmemPmdMapped: %8lu kB\n" | ||
116 | #endif | 118 | #endif |
117 | , | 119 | , |
118 | nid, K(node_page_state(nid, NR_FILE_DIRTY)), | 120 | nid, K(node_page_state(nid, NR_FILE_DIRTY)), |
@@ -131,10 +133,13 @@ static ssize_t node_read_meminfo(struct device *dev, | |||
131 | node_page_state(nid, NR_SLAB_UNRECLAIMABLE)), | 133 | node_page_state(nid, NR_SLAB_UNRECLAIMABLE)), |
132 | nid, K(node_page_state(nid, NR_SLAB_RECLAIMABLE)), | 134 | nid, K(node_page_state(nid, NR_SLAB_RECLAIMABLE)), |
133 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | 135 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
134 | nid, K(node_page_state(nid, NR_SLAB_UNRECLAIMABLE)) | 136 | nid, K(node_page_state(nid, NR_SLAB_UNRECLAIMABLE)), |
135 | , nid, | 137 | nid, K(node_page_state(nid, NR_ANON_THPS) * |
136 | K(node_page_state(nid, NR_ANON_TRANSPARENT_HUGEPAGES) * | 138 | HPAGE_PMD_NR), |
137 | HPAGE_PMD_NR)); | 139 | nid, K(node_page_state(nid, NR_SHMEM_THPS) * |
140 | HPAGE_PMD_NR), | ||
141 | nid, K(node_page_state(nid, NR_SHMEM_PMDMAPPED) * | ||
142 | HPAGE_PMD_NR)); | ||
138 | #else | 143 | #else |
139 | nid, K(node_page_state(nid, NR_SLAB_UNRECLAIMABLE))); | 144 | nid, K(node_page_state(nid, NR_SLAB_UNRECLAIMABLE))); |
140 | #endif | 145 | #endif |