Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1587955
| From | Shaohua Li <shli@fb.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH V5 6/6] proc: show MADV_FREE pages info in smaps |
| Date | 2017-02-24 22:40 +0100 |
| Message-ID | <tevKN-693-17@gated-at.bofh.it> (permalink) |
| References | <tevKN-693-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
show MADV_FREE pages info of each vma in smaps. The interface is for
diganose or monitoring purpose, userspace could use it to understand
what happens in the application. Since userspace could dirty MADV_FREE
pages without notice from kernel, this interface is the only place we
can get accurate accounting info about MADV_FREE pages.
Cc: Michal Hocko <mhocko@suse.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Shaohua Li <shli@fb.com>
---
Documentation/filesystems/proc.txt | 4 ++++
fs/proc/task_mmu.c | 8 +++++++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index c94b467..45853e1 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -412,6 +412,7 @@ Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 892 kB
Anonymous: 0 kB
+LazyFree: 0 kB
AnonHugePages: 0 kB
ShmemPmdMapped: 0 kB
Shared_Hugetlb: 0 kB
@@ -441,6 +442,9 @@ accessed.
"Anonymous" shows the amount of memory that does not belong to any file. Even
a mapping associated with a file may contain anonymous pages: when MAP_PRIVATE
and a page is modified, the file page is replaced by a private anonymous copy.
+"LazyFree" shows the amount of memory which is marked by madvise(MADV_FREE).
+The memory isn't freed immediately with madvise(). It's freed in memory
+pressure if the memory is clean.
"AnonHugePages" shows the ammount of memory backed by transparent hugepage.
"ShmemPmdMapped" shows the ammount of shared (shmem/tmpfs) memory backed by
huge pages.
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index ee3efb2..8a5ec00 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -440,6 +440,7 @@ struct mem_size_stats {
unsigned long private_dirty;
unsigned long referenced;
unsigned long anonymous;
+ unsigned long lazyfree;
unsigned long anonymous_thp;
unsigned long shmem_thp;
unsigned long swap;
@@ -456,8 +457,11 @@ static void smaps_account(struct mem_size_stats *mss, struct page *page,
int i, nr = compound ? 1 << compound_order(page) : 1;
unsigned long size = nr * PAGE_SIZE;
- if (PageAnon(page))
+ if (PageAnon(page)) {
mss->anonymous += size;
+ if (!PageSwapBacked(page) && !dirty && !PageDirty(page))
+ mss->lazyfree += size;
+ }
mss->resident += size;
/* Accumulate the size in pages that have been accessed. */
@@ -770,6 +774,7 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
"Private_Dirty: %8lu kB\n"
"Referenced: %8lu kB\n"
"Anonymous: %8lu kB\n"
+ "LazyFree: %8lu kB\n"
"AnonHugePages: %8lu kB\n"
"ShmemPmdMapped: %8lu kB\n"
"Shared_Hugetlb: %8lu kB\n"
@@ -788,6 +793,7 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
mss.private_dirty >> 10,
mss.referenced >> 10,
mss.anonymous >> 10,
+ mss.lazyfree >> 10,
mss.anonymous_thp >> 10,
mss.shmem_thp >> 10,
mss.shared_hugetlb >> 10,
--
2.9.3
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH V5 0/6] mm: fix some MADV_FREE issues Shaohua Li <shli@fb.com> - 2017-02-24 22:40 +0100
[PATCH V5 6/6] proc: show MADV_FREE pages info in smaps Shaohua Li <shli@fb.com> - 2017-02-24 22:40 +0100
Re: [PATCH V5 6/6] proc: show MADV_FREE pages info in smaps Michal Hocko <mhocko@kernel.org> - 2017-02-27 16:10 +0100
Re: [PATCH V5 6/6] proc: show MADV_FREE pages info in smaps "Hillf Danton" <hillf.zj@alibaba-inc.com> - 2017-02-28 04:30 +0100
[PATCH V5 4/6] mm: reclaim MADV_FREE pages Shaohua Li <shli@fb.com> - 2017-02-24 22:40 +0100
Re: [PATCH V5 4/6] mm: reclaim MADV_FREE pages Minchan Kim <minchan@kernel.org> - 2017-02-27 07:50 +0100
Re: [PATCH V5 4/6] mm: reclaim MADV_FREE pages Michal Hocko <mhocko@kernel.org> - 2017-02-27 17:40 +0100
Re: [PATCH V5 4/6] mm: reclaim MADV_FREE pages Minchan Kim <minchan@kernel.org> - 2017-02-28 06:50 +0100
Re: [PATCH V5 4/6] mm: reclaim MADV_FREE pages Michal Hocko <mhocko@kernel.org> - 2017-02-27 16:30 +0100
Re: [PATCH V5 4/6] mm: reclaim MADV_FREE pages Johannes Weiner <hannes@cmpxchg.org> - 2017-02-27 18:30 +0100
Re: [PATCH V5 4/6] mm: reclaim MADV_FREE pages "Hillf Danton" <hillf.zj@alibaba-inc.com> - 2017-02-28 04:30 +0100
[PATCH V5 1/6] mm: delete unnecessary TTU_* flags Shaohua Li <shli@fb.com> - 2017-02-24 22:40 +0100
Re: [PATCH V5 1/6] mm: delete unnecessary TTU_* flags Michal Hocko <mhocko@kernel.org> - 2017-02-27 16:10 +0100
[PATCH V5 2/6] mm: don't assume anonymous pages have SwapBacked flag Shaohua Li <shli@fb.com> - 2017-02-24 22:40 +0100
Re: [PATCH V5 2/6] mm: don't assume anonymous pages have SwapBacked flag "Hillf Danton" <hillf.zj@alibaba-inc.com> - 2017-02-27 08:00 +0100
Re: [PATCH V5 2/6] mm: don't assume anonymous pages have SwapBacked flag Michal Hocko <mhocko@kernel.org> - 2017-02-27 16:00 +0100
Re: [PATCH V5 2/6] mm: don't assume anonymous pages have SwapBacked flag Michal Hocko <mhocko@kernel.org> - 2017-02-27 17:50 +0100
csiph-web