Re: [PATCH v4 19/25] proc/task_mmu: Ignore ZONE_DEVICE pages

From: David Hildenbrand
Date: Tue Dec 17 2024 - 17:31:55 EST


On 17.12.24 06:13, Alistair Popple wrote:
The procfs mmu files such as smaps currently ignore device dax and fs
dax pages because these pages are considered special. To maintain
existing behaviour once these pages are treated as normal pages and
returned from vm_normal_page() add tests to explicitly skip them.

Signed-off-by: Alistair Popple <apopple@xxxxxxxxxx>
---
fs/proc/task_mmu.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 38a5a3e..c9b227a 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -801,6 +801,8 @@ static void smaps_pte_entry(pte_t *pte, unsigned long addr,
if (pte_present(ptent)) {
page = vm_normal_page(vma, addr, ptent);
+ if (page && (is_device_dax_page(page) || is_fsdax_page(page)))

This "is_device_dax_page(page) || is_fsdax_page(page)" is a common theme here, likely we should have a special helper?


But, don't we actually want to include them in the smaps output now? I think we want.

The rmap code will indicate these pages in /proc/meminfo, per-node info, in the memcg ... as "Mapped:" etc.

So likely we just want to also indicate them here, or is there any downsides we know of?

--
Cheers,

David / dhildenb