lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250407053113.746295-1-anshuman.khandual@arm.com>
Date: Mon,  7 Apr 2025 11:01:10 +0530
From: Anshuman Khandual <anshuman.khandual@....com>
To: linux-mm@...ck.org
Cc: mark.rutland@....com,
	Anshuman Khandual <anshuman.khandual@....com>,
	Catalin Marinas <catalin.marinas@....com>,
	Will Deacon <will@...nel.org>,
	Steven Price <steven.price@....com>,
	Ryan Roberts <ryan.roberts@....com>,
	Madhavan Srinivasan <maddy@...ux.ibm.com>,
	Nicholas Piggin <npiggin@...il.com>,
	Paul Walmsley <paul.walmsley@...ive.com>,
	Palmer Dabbelt <palmer@...belt.com>,
	Gerald Schaefer <gerald.schaefer@...ux.ibm.com>,
	Heiko Carstens <hca@...ux.ibm.com>,
	Peter Zijlstra <peterz@...radead.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	Ingo Molnar <mingo@...hat.com>,
	Alexander Gordeev <agordeev@...ux.ibm.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	linux-arm-kernel@...ts.infradead.org,
	linux-kernel@...r.kernel.org,
	linuxppc-dev@...ts.ozlabs.org,
	linux-riscv@...ts.infradead.org,
	linux-s390@...r.kernel.org
Subject: [PATCH V2 0/3] mm/ptdump: Drop assumption that pxd_val() is u64

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.
A similar problem exists for effective_prot(), although it is restricted to
x86 platform.

This series splits note_page() and effective_prot() into individual page
table level specific callbacks which accepts corresponding pxd_t page table
entry as an argument instead and later on all subscribing platforms could
derive pxd_val() from the table entries as required and proceed as before.

Define ptdesc_t type which describes the basic page table descriptor layout
on arm64 platform. Subsequently all level specific pxxval_t descriptors are
derived from ptdesc_t thus establishing a common original format, which can
also be appropriate for page table entries, masks and protection values etc
which are used at all page table levels.

This series has been tested on arm64 platform but it does build on other
relevant platforms (v6.15-rc1).

Changes in V2:

- Added a patch to split effective_prot() callback per Alexander
- Added a patch to define ptdesc_t data type on arm64 platform per Ryan

Changes in V1:

https://lore.kernel.org/all/20250317061818.16244-1-anshuman.khandual@arm.com/

- 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@....com>
Cc: Will Deacon <will@...nel.org>
Cc: Steven Price <steven.price@....com>
Cc: Ryan Roberts <ryan.roberts@....com>
Cc: Madhavan Srinivasan <maddy@...ux.ibm.com>
Cc: Nicholas Piggin <npiggin@...il.com>
Cc: Paul Walmsley <paul.walmsley@...ive.com>
Cc: Palmer Dabbelt <palmer@...belt.com>
Cc: Gerald Schaefer <gerald.schaefer@...ux.ibm.com>
Cc: Heiko Carstens <hca@...ux.ibm.com>
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Thomas Gleixner <tglx@...utronix.de>
Cc: Ingo Molnar <mingo@...hat.com>
Cc: Alexander Gordeev <agordeev@...ux.ibm.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>
Cc: linux-arm-kernel@...ts.infradead.org
Cc: linux-kernel@...r.kernel.org
Cc: linuxppc-dev@...ts.ozlabs.org
Cc: linux-riscv@...ts.infradead.org
Cc: linux-s390@...r.kernel.org
Cc: linux-mm@...ck.org

Anshuman Khandual (3):
  mm/ptdump: Split note_page() into level specific callbacks
  mm/ptdump: Split effective_prot() into level specific callbacks
  arm64/mm: Define ptdesc_t

 arch/arm64/include/asm/pgtable-types.h | 20 +++++---
 arch/arm64/include/asm/ptdump.h        | 24 ++++++---
 arch/arm64/kernel/efi.c                |  4 +-
 arch/arm64/kernel/pi/map_kernel.c      |  2 +-
 arch/arm64/kernel/pi/map_range.c       |  4 +-
 arch/arm64/kernel/pi/pi.h              |  2 +-
 arch/arm64/mm/mmap.c                   |  2 +-
 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          | 71 +++++++++++++++++++++++++-
 include/linux/ptdump.h                 | 15 ++++--
 mm/ptdump.c                            | 62 ++++++++++++++--------
 14 files changed, 339 insertions(+), 55 deletions(-)

-- 
2.25.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ