[PATCH 0/2] mm/ptdump: Drop assumption that pxd_val() is u64
Anshuman Khandual
anshuman.khandual at arm.com
Mon Mar 17 17:18:16 AEDT 2025
Last argument passed down in note_page() is u64 assuming pxd_val() returned
value (all page table levels) is 64 bit - which might not be the case going
ahead when D128 page tables is enabled on arm64 platform. Besides pxd_val()
is very platform specific and its type should not be assumed in generic MM.
This series splits note_page() into individual page table level specific
callbacks which accepts corresponding pxd_t page table entry as an argument
instead and later all subscribing platforms could derive pxd_val() from the
entries as required and proceed as before.
Page table entry's value, mask and protection are represented with pteval_t
not u64 that has been assumed while dumping the page table entries on arm64
platform. Replace such u64 instances with pteval_t instead as expected.
This series has been tested on arm64 platform but it does build on other
relevant platforms (v6.14-rc7).
Changes in V1:
- Added note_page_flush() callback and implemented the same on all
subscribing platforms
- Moved note_page() argument change from u64 to pteval_t on arm64 platform
from second patch to the first patch instead
Changes in RFC:
https://lore.kernel.org/all/20250310095902.390664-1-anshuman.khandual@arm.com/
Cc: Catalin Marinas <catalin.marinas at arm.com>
Cc: Will Deacon <will at kernel.org>
Cc: Steven Price <steven.price at arm.com>
Cc: Ryan Roberts <ryan.roberts at arm.com>
Cc: Madhavan Srinivasan <maddy at linux.ibm.com>
Cc: Nicholas Piggin <npiggin at gmail.com>
Cc: Paul Walmsley <paul.walmsley at sifive.com>
Cc: Palmer Dabbelt <palmer at dabbelt.com>
Cc: Gerald Schaefer <gerald.schaefer at linux.ibm.com>
Cc: Heiko Carstens <hca at linux.ibm.com>
Cc: Peter Zijlstra <peterz at infradead.org>
Cc: Thomas Gleixner <tglx at linutronix.de>
Cc: Ingo Molnar <mingo at redhat.com>
Cc: Andrew Morton <akpm at linux-foundation.org>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-kernel at vger.kernel.org
Cc: linuxppc-dev at lists.ozlabs.org
Cc: linux-riscv at lists.infradead.org
Cc: linux-s390 at vger.kernel.org
Cc: linux-mm at kvack.org
Anshuman Khandual (2):
mm/ptdump: Split note_page() into level specific callbacks
arm64/ptdump: Replace u64 with pteval_t
arch/arm64/include/asm/ptdump.h | 24 ++++++++++++----
arch/arm64/mm/ptdump.c | 50 ++++++++++++++++++++++++++++++---
arch/powerpc/mm/ptdump/ptdump.c | 46 ++++++++++++++++++++++++++++--
arch/riscv/mm/ptdump.c | 46 ++++++++++++++++++++++++++++--
arch/s390/mm/dump_pagetables.c | 46 ++++++++++++++++++++++++++++--
arch/x86/mm/dump_pagetables.c | 39 ++++++++++++++++++++++++-
include/linux/ptdump.h | 9 ++++--
mm/ptdump.c | 42 ++++++++++++++++++++-------
8 files changed, 272 insertions(+), 30 deletions(-)
--
2.25.1
More information about the Linuxppc-dev
mailing list