linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] arm64/mm: Compute PTRS_PER_[PMD|PUD] independently of PTRS_PER_PTE
@ 2022-04-08  4:10 Anshuman Khandual
  2022-04-22 13:45 ` Catalin Marinas
  2022-04-22 18:27 ` Catalin Marinas
  0 siblings, 2 replies; 3+ messages in thread
From: Anshuman Khandual @ 2022-04-08  4:10 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Anshuman Khandual, Catalin Marinas, Will Deacon, linux-kernel

Possible page table entries (or pointers) on non-zero page table levels are
dependent on a single page size i.e PAGE_SIZE and size required for each
individual page table entry i.e 8 bytes. PTRS_PER_[PMD|PUD] as such are not
related to PTRS_PER_PTE in any manner, as being implied currently. So lets
just make this very explicit and compute these macros independently.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
This applies on v5.18-rc1

 arch/arm64/include/asm/pgtable-hwdef.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/include/asm/pgtable-hwdef.h b/arch/arm64/include/asm/pgtable-hwdef.h
index 66671ff05183..dd3d12bce07b 100644
--- a/arch/arm64/include/asm/pgtable-hwdef.h
+++ b/arch/arm64/include/asm/pgtable-hwdef.h
@@ -49,7 +49,7 @@
 #define PMD_SHIFT		ARM64_HW_PGTABLE_LEVEL_SHIFT(2)
 #define PMD_SIZE		(_AC(1, UL) << PMD_SHIFT)
 #define PMD_MASK		(~(PMD_SIZE-1))
-#define PTRS_PER_PMD		PTRS_PER_PTE
+#define PTRS_PER_PMD		(1 << (PAGE_SHIFT - 3))
 #endif
 
 /*
@@ -59,7 +59,7 @@
 #define PUD_SHIFT		ARM64_HW_PGTABLE_LEVEL_SHIFT(1)
 #define PUD_SIZE		(_AC(1, UL) << PUD_SHIFT)
 #define PUD_MASK		(~(PUD_SIZE-1))
-#define PTRS_PER_PUD		PTRS_PER_PTE
+#define PTRS_PER_PUD		(1 << (PAGE_SHIFT - 3))
 #endif
 
 /*
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] arm64/mm: Compute PTRS_PER_[PMD|PUD] independently of PTRS_PER_PTE
  2022-04-08  4:10 [PATCH] arm64/mm: Compute PTRS_PER_[PMD|PUD] independently of PTRS_PER_PTE Anshuman Khandual
@ 2022-04-22 13:45 ` Catalin Marinas
  2022-04-22 18:27 ` Catalin Marinas
  1 sibling, 0 replies; 3+ messages in thread
From: Catalin Marinas @ 2022-04-22 13:45 UTC (permalink / raw)
  To: Anshuman Khandual; +Cc: linux-arm-kernel, Will Deacon, linux-kernel

On Fri, Apr 08, 2022 at 09:40:09AM +0530, Anshuman Khandual wrote:
> Possible page table entries (or pointers) on non-zero page table levels are
> dependent on a single page size i.e PAGE_SIZE and size required for each
> individual page table entry i.e 8 bytes. PTRS_PER_[PMD|PUD] as such are not
> related to PTRS_PER_PTE in any manner, as being implied currently. So lets
> just make this very explicit and compute these macros independently.

OTOH, we have lots of other assumptions about pmd etc. being updated
using the pte macros. Anyway, I'm fine with this.

-- 
Catalin

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] arm64/mm: Compute PTRS_PER_[PMD|PUD] independently of PTRS_PER_PTE
  2022-04-08  4:10 [PATCH] arm64/mm: Compute PTRS_PER_[PMD|PUD] independently of PTRS_PER_PTE Anshuman Khandual
  2022-04-22 13:45 ` Catalin Marinas
@ 2022-04-22 18:27 ` Catalin Marinas
  1 sibling, 0 replies; 3+ messages in thread
From: Catalin Marinas @ 2022-04-22 18:27 UTC (permalink / raw)
  To: Anshuman Khandual, linux-arm-kernel; +Cc: Will Deacon, linux-kernel

On Fri, 8 Apr 2022 09:40:09 +0530, Anshuman Khandual wrote:
> Possible page table entries (or pointers) on non-zero page table levels are
> dependent on a single page size i.e PAGE_SIZE and size required for each
> individual page table entry i.e 8 bytes. PTRS_PER_[PMD|PUD] as such are not
> related to PTRS_PER_PTE in any manner, as being implied currently. So lets
> just make this very explicit and compute these macros independently.
> 
> 
> [...]

Applied to arm64 (for-next/misc), thanks!

[1/1] arm64/mm: Compute PTRS_PER_[PMD|PUD] independently of PTRS_PER_PTE
      https://git.kernel.org/arm64/c/2a2848e7c2fd

-- 
Catalin


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-04-22 18:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-08  4:10 [PATCH] arm64/mm: Compute PTRS_PER_[PMD|PUD] independently of PTRS_PER_PTE Anshuman Khandual
2022-04-22 13:45 ` Catalin Marinas
2022-04-22 18:27 ` Catalin Marinas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).