From: Andrew Morton <akpm@linux-foundation.org>
To: mm-commits@vger.kernel.org, willy@infradead.org,
peterx@redhat.com, hughd@google.com, david@redhat.com,
liubo254@huawei.com, akpm@linux-foundation.org
Subject: [to-be-updated] smaps-fix-the-abnormal-memory-statistics-obtained-through-proc-pid-smaps.patch removed from -mm tree
Date: Thu, 27 Jul 2023 11:21:27 -0700 [thread overview]
Message-ID: <20230727182127.A372BC433C8@smtp.kernel.org> (raw)
The quilt patch titled
Subject: smaps: fix the abnormal memory statistics obtained through /proc/pid/smaps
has been removed from the -mm tree. Its filename was
smaps-fix-the-abnormal-memory-statistics-obtained-through-proc-pid-smaps.patch
This patch was dropped because an updated version will be merged
------------------------------------------------------
From: liubo <liubo254@huawei.com>
Subject: smaps: fix the abnormal memory statistics obtained through /proc/pid/smaps
Date: Wed, 26 Jul 2023 15:34:09 +0800
In commit 474098edac26 ("mm/gup: replace FOLL_NUMA by
gup_can_follow_protnone()"), FOLL_NUMA was removed and replaced by the
gup_can_follow_protnone interface.
However, for the case where the user-mode process uses transparent huge
pages, when analyzing the memory usage through /proc/pid/smaps_rollup, the
obtained memory usage is not consistent with the RSS in /proc/pid/status.
Related examples are as follows:
cat /proc/15427/status
VmRSS: 20973024 kB
RssAnon: 20971616 kB
RssFile: 1408 kB
RssShmem: 0 kB
cat /proc/15427/smaps_rollup
00400000-7ffcc372d000 ---p 00000000 00:00 0 [rollup]
Rss: 14419432 kB
Pss: 14418079 kB
Pss_Dirty: 14418016 kB
Pss_Anon: 14418016 kB
Pss_File: 63 kB
Pss_Shmem: 0 kB
Anonymous: 14418016 kB
LazyFree: 0 kB
AnonHugePages: 14417920 kB
The root cause is that in the traversal of the page tables, the number of
pages obtained by smaps_pmd_entry does not include the pages corresponding
to PROTNONE, resulting in a different situation.
Therefore, when obtaining pages through the follow_trans_huge_pmd
interface, add the FOLL_FORCE flag to count the pages corresponding to
PROTNONE to solve the above problem.
[akpm@linux-foundation.org: tweak comment and code layout]
Link: https://lkml.kernel.org/r/20230726073409.631838-1-liubo254@huawei.com
Signed-off-by: liubo <liubo254@huawei.com>
Fixes: 474098edac26 ("mm/gup: replace FOLL_NUMA by gup_can_follow_protnone()")
Cc: Hugh Dickins <hughd@google.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Peter Xu <peterx@redhat.com>
Cc: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/proc/task_mmu.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
--- a/fs/proc/task_mmu.c~smaps-fix-the-abnormal-memory-statistics-obtained-through-proc-pid-smaps
+++ a/fs/proc/task_mmu.c
@@ -587,8 +587,12 @@ static void smaps_pmd_entry(pmd_t *pmd,
bool migration = false;
if (pmd_present(*pmd)) {
- /* FOLL_DUMP will return -EFAULT on huge zero page */
- page = follow_trans_huge_pmd(vma, addr, pmd, FOLL_DUMP);
+ /*
+ * FOLL_DUMP: return -EFAULT on huge zero page
+ * FOLL_FORCE: follow a PROT_NONE mapped page
+ */
+ page = follow_trans_huge_pmd(vma, addr, pmd,
+ FOLL_DUMP | FOLL_FORCE);
} else if (unlikely(thp_migration_supported() && is_swap_pmd(*pmd))) {
swp_entry_t entry = pmd_to_swp_entry(*pmd);
_
Patches currently in -mm which might be from liubo254@huawei.com are
reply other threads:[~2023-07-27 18:21 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230727182127.A372BC433C8@smtp.kernel.org \
--to=akpm@linux-foundation.org \
--cc=david@redhat.com \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=liubo254@huawei.com \
--cc=mm-commits@vger.kernel.org \
--cc=peterx@redhat.com \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.