From: Christophe Leroy <christophe.leroy@csgroup.eu> To: Benjamin Herrenschmidt <benh@kernel.crashing.org>, Paul Mackerras <paulus@samba.org>, Michael Ellerman <mpe@ellerman.id.au> Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: [PATCH v3 44/45] powerpc/32s: Allow mapping with BATs with DEBUG_PAGEALLOC Date: Mon, 11 May 2020 11:26:11 +0000 (UTC) [thread overview] Message-ID: <7d4c67dd0733b83fe4462627e9097b66d66e94dc.1589196133.git.christophe.leroy@csgroup.eu> (raw) In-Reply-To: <cover.1589196133.git.christophe.leroy@csgroup.eu> DEBUG_PAGEALLOC only manages RW data. Text and RO data can still be mapped with BATs. In order to map with BATs, also enforce data alignment. Set by default to 256M which is a good compromise for keeping enough BATs for also KASAN and IMMR. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> --- arch/powerpc/Kconfig | 1 + arch/powerpc/mm/book3s32/mmu.c | 6 ++++++ arch/powerpc/mm/init_32.c | 5 ++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 9d94e8b178d8..5c1fcfe9be74 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -796,6 +796,7 @@ config DATA_SHIFT range 17 28 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC) && PPC_BOOK3S_32 range 19 23 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC) && PPC_8xx default 22 if STRICT_KERNEL_RWX && PPC_BOOK3S_32 + default 18 if DEBUG_PAGEALLOC && PPC_BOOK3S_32 default 23 if STRICT_KERNEL_RWX && PPC_8xx default 23 if DEBUG_PAGEALLOC && PPC_8xx && PIN_TLB_DATA default 19 if DEBUG_PAGEALLOC && PPC_8xx diff --git a/arch/powerpc/mm/book3s32/mmu.c b/arch/powerpc/mm/book3s32/mmu.c index a9b2cbc74797..a6dcc708eee3 100644 --- a/arch/powerpc/mm/book3s32/mmu.c +++ b/arch/powerpc/mm/book3s32/mmu.c @@ -170,6 +170,12 @@ unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top) pr_debug("RAM mapped without BATs\n"); return base; } + if (debug_pagealloc_enabled()) { + if (base >= border) + return base; + if (top >= border) + top = border; + } if (!strict_kernel_rwx_enabled() || base >= border || top <= border) return __mmu_mapin_ram(base, top); diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c index 8977a7c2543d..36c39bd37256 100644 --- a/arch/powerpc/mm/init_32.c +++ b/arch/powerpc/mm/init_32.c @@ -99,10 +99,9 @@ static void __init MMU_setup(void) if (IS_ENABLED(CONFIG_PPC_8xx)) return; - if (debug_pagealloc_enabled()) { - __map_without_bats = 1; + if (debug_pagealloc_enabled()) __map_without_ltlbs = 1; - } + if (strict_kernel_rwx_enabled()) __map_without_ltlbs = 1; } -- 2.25.0
WARNING: multiple messages have this Message-ID (diff)
From: Christophe Leroy <christophe.leroy@csgroup.eu> To: Benjamin Herrenschmidt <benh@kernel.crashing.org>, Paul Mackerras <paulus@samba.org>, Michael Ellerman <mpe@ellerman.id.au> Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 44/45] powerpc/32s: Allow mapping with BATs with DEBUG_PAGEALLOC Date: Mon, 11 May 2020 11:26:11 +0000 (UTC) [thread overview] Message-ID: <7d4c67dd0733b83fe4462627e9097b66d66e94dc.1589196133.git.christophe.leroy@csgroup.eu> (raw) In-Reply-To: <cover.1589196133.git.christophe.leroy@csgroup.eu> DEBUG_PAGEALLOC only manages RW data. Text and RO data can still be mapped with BATs. In order to map with BATs, also enforce data alignment. Set by default to 256M which is a good compromise for keeping enough BATs for also KASAN and IMMR. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> --- arch/powerpc/Kconfig | 1 + arch/powerpc/mm/book3s32/mmu.c | 6 ++++++ arch/powerpc/mm/init_32.c | 5 ++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 9d94e8b178d8..5c1fcfe9be74 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -796,6 +796,7 @@ config DATA_SHIFT range 17 28 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC) && PPC_BOOK3S_32 range 19 23 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC) && PPC_8xx default 22 if STRICT_KERNEL_RWX && PPC_BOOK3S_32 + default 18 if DEBUG_PAGEALLOC && PPC_BOOK3S_32 default 23 if STRICT_KERNEL_RWX && PPC_8xx default 23 if DEBUG_PAGEALLOC && PPC_8xx && PIN_TLB_DATA default 19 if DEBUG_PAGEALLOC && PPC_8xx diff --git a/arch/powerpc/mm/book3s32/mmu.c b/arch/powerpc/mm/book3s32/mmu.c index a9b2cbc74797..a6dcc708eee3 100644 --- a/arch/powerpc/mm/book3s32/mmu.c +++ b/arch/powerpc/mm/book3s32/mmu.c @@ -170,6 +170,12 @@ unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top) pr_debug("RAM mapped without BATs\n"); return base; } + if (debug_pagealloc_enabled()) { + if (base >= border) + return base; + if (top >= border) + top = border; + } if (!strict_kernel_rwx_enabled() || base >= border || top <= border) return __mmu_mapin_ram(base, top); diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c index 8977a7c2543d..36c39bd37256 100644 --- a/arch/powerpc/mm/init_32.c +++ b/arch/powerpc/mm/init_32.c @@ -99,10 +99,9 @@ static void __init MMU_setup(void) if (IS_ENABLED(CONFIG_PPC_8xx)) return; - if (debug_pagealloc_enabled()) { - __map_without_bats = 1; + if (debug_pagealloc_enabled()) __map_without_ltlbs = 1; - } + if (strict_kernel_rwx_enabled()) __map_without_ltlbs = 1; } -- 2.25.0
next prev parent reply other threads:[~2020-05-11 11:26 UTC|newest] Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-11 11:25 [PATCH v3 00/45] Use hugepages to map kernel mem on 8xx Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 01/45] powerpc/kasan: Fix error detection on memory allocation Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 02/45] powerpc/kasan: Fix issues by lowering KASAN_SHADOW_END Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 03/45] powerpc/kasan: Fix shadow pages allocation failure Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 04/45] powerpc/kasan: Remove unnecessary page table locking Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 05/45] powerpc/kasan: Refactor update of early shadow mappings Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 06/45] powerpc/kasan: Declare kasan_init_region() weak Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 07/45] powerpc/ptdump: Limit size of flags text to 1/2 chars on PPC32 Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 08/45] powerpc/ptdump: Reorder flags Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 09/45] powerpc/ptdump: Add _PAGE_COHERENT flag Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 10/45] powerpc/ptdump: Display size of BATs Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 11/45] powerpc/ptdump: Standardise display of BAT flags Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 12/45] powerpc/ptdump: Properly handle non standard page size Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 13/45] powerpc/ptdump: Handle hugepd at PGD level Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 14/45] powerpc/32s: Don't warn when mapping RO data ROX Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 15/45] powerpc/mm: Allocate static page tables for fixmap Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 16/45] powerpc/mm: Fix conditions to perform MMU specific management by blocks on PPC32 Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 17/45] powerpc/mm: PTE_ATOMIC_UPDATES is only for 40x Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 18/45] powerpc/mm: Refactor pte_update() on nohash/32 Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 19/45] powerpc/mm: Refactor pte_update() on book3s/32 Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 20/45] powerpc/mm: Standardise __ptep_test_and_clear_young() params between PPC32 and PPC64 Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 21/45] powerpc/mm: Standardise pte_update() prototype " Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 22/45] powerpc/mm: Create a dedicated pte_update() for 8xx Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 23/45] powerpc/mm: Reduce hugepd size for 8M hugepages on 8xx Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 24/45] powerpc/8xx: Drop CONFIG_8xx_COPYBACK option Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 25/45] powerpc/8xx: Prepare handlers for _PAGE_HUGE for 512k pages Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 26/45] powerpc/8xx: Manage 512k huge pages as standard pages Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 27/45] powerpc/8xx: Only 8M pages are hugepte pages now Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 28/45] powerpc/8xx: MM_SLICE is not needed anymore Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 29/45] powerpc/8xx: Move PPC_PIN_TLB options into 8xx Kconfig Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 30/45] powerpc/8xx: Add function to set pinned TLBs Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 31/45] powerpc/8xx: Don't set IMMR map anymore at boot Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 32/45] powerpc/8xx: Always pin TLBs at startup Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:25 ` [PATCH v3 33/45] powerpc/8xx: Drop special handling of Linear and IMMR mappings in I/D TLB handlers Christophe Leroy 2020-05-11 11:25 ` Christophe Leroy 2020-05-11 11:26 ` [PATCH v3 34/45] powerpc/8xx: Remove now unused TLB miss functions Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy 2020-05-11 11:26 ` [PATCH v3 35/45] powerpc/8xx: Move DTLB perf handling closer Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy 2020-05-11 11:26 ` [PATCH v3 36/45] powerpc/mm: Don't be too strict with _etext alignment on PPC32 Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy 2020-05-11 11:26 ` [PATCH v3 37/45] powerpc/8xx: Refactor kernel address boundary comparison Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy 2020-05-11 11:26 ` [PATCH v3 38/45] powerpc/8xx: Add a function to early map kernel via huge pages Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy 2020-05-11 11:26 ` [PATCH v3 39/45] powerpc/8xx: Map IMMR with a huge page Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy 2020-05-11 11:26 ` [PATCH v3 40/45] powerpc/8xx: Map linear memory with huge pages Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy 2020-05-11 11:26 ` [PATCH v3 41/45] powerpc/8xx: Allow STRICT_KERNEL_RwX with pinned TLB Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy 2020-05-11 11:26 ` [PATCH v3 42/45] powerpc/8xx: Allow large TLBs with DEBUG_PAGEALLOC Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy 2020-05-11 11:26 ` [PATCH v3 43/45] powerpc/8xx: Implement dedicated kasan_init_region() Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy [this message] 2020-05-11 11:26 ` [PATCH v3 44/45] powerpc/32s: Allow mapping with BATs with DEBUG_PAGEALLOC Christophe Leroy 2020-05-11 11:26 ` [PATCH v3 45/45] powerpc/32s: Implement dedicated kasan_init_region() Christophe Leroy 2020-05-11 11:26 ` Christophe Leroy
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=7d4c67dd0733b83fe4462627e9097b66d66e94dc.1589196133.git.christophe.leroy@csgroup.eu \ --to=christophe.leroy@csgroup.eu \ --cc=benh@kernel.crashing.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mpe@ellerman.id.au \ --cc=paulus@samba.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: linkBe 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.