Merge tag 'block-6.6-2023-10-20' of git://git.kernel.dk/linux
[platform/kernel/linux-rpi.git] / fs / proc / task_mmu.c
index 0f2aa36..3dd5be9 100644 (file)
@@ -4,6 +4,7 @@
 #include <linux/hugetlb.h>
 #include <linux/huge_mm.h>
 #include <linux/mount.h>
+#include <linux/ksm.h>
 #include <linux/seq_file.h>
 #include <linux/highmem.h>
 #include <linux/ptrace.h>
@@ -396,6 +397,7 @@ struct mem_size_stats {
        unsigned long swap;
        unsigned long shared_hugetlb;
        unsigned long private_hugetlb;
+       unsigned long ksm;
        u64 pss;
        u64 pss_anon;
        u64 pss_file;
@@ -452,6 +454,9 @@ static void smaps_account(struct mem_size_stats *mss, struct page *page,
                        mss->lazyfree += size;
        }
 
+       if (PageKsm(page))
+               mss->ksm += size;
+
        mss->resident += size;
        /* Accumulate the size in pages that have been accessed. */
        if (young || page_is_young(page) || PageReferenced(page))
@@ -825,6 +830,7 @@ static void __show_smap(struct seq_file *m, const struct mem_size_stats *mss,
        SEQ_PUT_DEC(" kB\nPrivate_Dirty:  ", mss->private_dirty);
        SEQ_PUT_DEC(" kB\nReferenced:     ", mss->referenced);
        SEQ_PUT_DEC(" kB\nAnonymous:      ", mss->anonymous);
+       SEQ_PUT_DEC(" kB\nKSM:            ", mss->ksm);
        SEQ_PUT_DEC(" kB\nLazyFree:       ", mss->lazyfree);
        SEQ_PUT_DEC(" kB\nAnonHugePages:  ", mss->anonymous_thp);
        SEQ_PUT_DEC(" kB\nShmemPmdMapped: ", mss->shmem_thp);