Convert NR_SHMEM_PMDMAPPED account to pages.

Signed-off-by: Muchun Song <songmuc...@bytedance.com>
---
 drivers/base/node.c | 3 +--
 fs/proc/meminfo.c   | 2 +-
 mm/page_alloc.c     | 3 +--
 mm/rmap.c           | 6 ++++--
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/base/node.c b/drivers/base/node.c
index a64f9c5484a0..fe90888f90a8 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -463,8 +463,7 @@ static ssize_t node_read_meminfo(struct device *dev,
                             ,
                             nid, K(node_page_state(pgdat, NR_ANON_THPS)),
                             nid, K(node_page_state(pgdat, NR_SHMEM_THPS)),
-                            nid, K(node_page_state(pgdat, NR_SHMEM_PMDMAPPED) *
-                                   HPAGE_PMD_NR),
+                            nid, K(node_page_state(pgdat, NR_SHMEM_PMDMAPPED)),
                             nid, K(node_page_state(pgdat, NR_FILE_THPS)),
                             nid, K(node_page_state(pgdat, NR_FILE_PMDMAPPED) *
                                    HPAGE_PMD_NR)
diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
index 574779b6e48c..b2bff8359497 100644
--- a/fs/proc/meminfo.c
+++ b/fs/proc/meminfo.c
@@ -133,7 +133,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
        show_val_kb(m, "ShmemHugePages: ",
                    global_node_page_state(NR_SHMEM_THPS));
        show_val_kb(m, "ShmemPmdMapped: ",
-                   global_node_page_state(NR_SHMEM_PMDMAPPED) * HPAGE_PMD_NR);
+                   global_node_page_state(NR_SHMEM_PMDMAPPED));
        show_val_kb(m, "FileHugePages:  ",
                    global_node_page_state(NR_FILE_THPS));
        show_val_kb(m, "FilePmdMapped:  ",
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 8fb9f3d38b67..ddaa1dcd6e38 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -5568,8 +5568,7 @@ void show_free_areas(unsigned int filter, nodemask_t 
*nodemask)
                        K(node_page_state(pgdat, NR_SHMEM)),
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
                        K(node_page_state(pgdat, NR_SHMEM_THPS)),
-                       K(node_page_state(pgdat, NR_SHMEM_PMDMAPPED)
-                                       * HPAGE_PMD_NR),
+                       K(node_page_state(pgdat, NR_SHMEM_PMDMAPPED)),
                        K(node_page_state(pgdat, NR_ANON_THPS)),
 #endif
                        K(node_page_state(pgdat, NR_WRITEBACK_TEMP)),
diff --git a/mm/rmap.c b/mm/rmap.c
index f59e92e26b61..3089ad6bf468 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -1219,7 +1219,8 @@ void page_add_file_rmap(struct page *page, bool compound)
                if (!atomic_inc_and_test(compound_mapcount_ptr(page)))
                        goto out;
                if (PageSwapBacked(page))
-                       __inc_node_page_state(page, NR_SHMEM_PMDMAPPED);
+                       __mod_lruvec_page_state(page, NR_SHMEM_PMDMAPPED,
+                                               HPAGE_PMD_NR);
                else
                        __inc_node_page_state(page, NR_FILE_PMDMAPPED);
        } else {
@@ -1260,7 +1261,8 @@ static void page_remove_file_rmap(struct page *page, bool 
compound)
                if (!atomic_add_negative(-1, compound_mapcount_ptr(page)))
                        return;
                if (PageSwapBacked(page))
-                       __dec_node_page_state(page, NR_SHMEM_PMDMAPPED);
+                       __mod_lruvec_page_state(page, NR_SHMEM_PMDMAPPED,
+                                               -HPAGE_PMD_NR);
                else
                        __dec_node_page_state(page, NR_FILE_PMDMAPPED);
        } else {
-- 
2.11.0

Reply via email to