From: Nicholas Piggin <npiggin@gmail.com>
To: Christophe Leroy <christophe.leroy@csgroup.eu>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v3 16/18] powerpc/64s: Move hash MMU support code under CONFIG_PPC_64S_HASH_MMU
Date: Fri, 22 Oct 2021 19:34:15 +1000 [thread overview]
Message-ID: <1634895021.4d2890ma8z.astroid@bobo.none> (raw)
In-Reply-To: <cfd73dd0-a7a2-b8b3-34d8-5a225758b056@csgroup.eu>
Excerpts from Christophe Leroy's message of October 22, 2021 5:18 pm:
>
>
> Le 22/10/2021 à 00:30, Nicholas Piggin a écrit :
>> Compiling out hash support code when CONFIG_PPC_64S_HASH_MMU=n saves
>> 128kB kernel image size (90kB text) on powernv_defconfig minus KVM,
>> 350kB on pseries_defconfig minus KVM, 40kB on a tiny config.
>>
>> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
>> ---
>> arch/powerpc/Kconfig | 2 +-
>> arch/powerpc/include/asm/book3s/64/mmu.h | 19 +++++++++--
>> .../include/asm/book3s/64/tlbflush-hash.h | 7 ++++
>> arch/powerpc/include/asm/book3s/pgtable.h | 4 +++
>> arch/powerpc/include/asm/mmu_context.h | 2 ++
>> arch/powerpc/include/asm/paca.h | 8 +++++
>> arch/powerpc/kernel/asm-offsets.c | 2 ++
>> arch/powerpc/kernel/entry_64.S | 4 +--
>> arch/powerpc/kernel/exceptions-64s.S | 16 +++++++++
>> arch/powerpc/kernel/mce.c | 2 +-
>> arch/powerpc/kernel/mce_power.c | 10 ++++--
>> arch/powerpc/kernel/paca.c | 18 ++++------
>> arch/powerpc/kernel/process.c | 13 +++----
>> arch/powerpc/kernel/prom.c | 2 ++
>> arch/powerpc/kernel/setup_64.c | 5 +++
>> arch/powerpc/kexec/core_64.c | 4 +--
>> arch/powerpc/kexec/ranges.c | 4 +++
>> arch/powerpc/mm/book3s64/Makefile | 15 ++++----
>> arch/powerpc/mm/book3s64/hugetlbpage.c | 2 ++
>> arch/powerpc/mm/book3s64/mmu_context.c | 34 +++++++++++++++----
>> arch/powerpc/mm/book3s64/pgtable.c | 2 +-
>> arch/powerpc/mm/book3s64/radix_pgtable.c | 4 +++
>> arch/powerpc/mm/copro_fault.c | 2 ++
>> arch/powerpc/mm/ptdump/Makefile | 2 +-
>> arch/powerpc/platforms/powernv/idle.c | 2 ++
>> arch/powerpc/platforms/powernv/setup.c | 2 ++
>> arch/powerpc/platforms/pseries/lpar.c | 11 ++++--
>> arch/powerpc/platforms/pseries/lparcfg.c | 2 +-
>> arch/powerpc/platforms/pseries/mobility.c | 6 ++++
>> arch/powerpc/platforms/pseries/ras.c | 2 ++
>> arch/powerpc/platforms/pseries/reconfig.c | 2 ++
>> arch/powerpc/platforms/pseries/setup.c | 6 ++--
>> arch/powerpc/xmon/xmon.c | 8 +++--
>> drivers/misc/lkdtm/Makefile | 2 +-
>> drivers/misc/lkdtm/core.c | 2 +-
>> 35 files changed, 177 insertions(+), 51 deletions(-)
>>
>
>> diff --git a/arch/powerpc/include/asm/book3s/64/mmu.h b/arch/powerpc/include/asm/book3s/64/mmu.h
>> index c02f42d1031e..d94ebae386b6 100644
>> --- a/arch/powerpc/include/asm/book3s/64/mmu.h
>> +++ b/arch/powerpc/include/asm/book3s/64/mmu.h
>> @@ -233,7 +245,8 @@ static inline void setup_initial_memory_limit(phys_addr_t first_memblock_base,
>> * know which translations we will pick. Hence go with hash
>> * restrictions.
>> */
>> - return hash__setup_initial_memory_limit(first_memblock_base,
>> + if (!radix_enabled())
>> + return hash__setup_initial_memory_limit(first_memblock_base,
>> first_memblock_size);
>
> It is a void function, using return is not correct.
I guess for this case I can fix as I go.
>> @@ -112,8 +112,15 @@ static inline void hash__flush_tlb_kernel_range(unsigned long start,
>>
>> struct mmu_gather;
>> extern void hash__tlb_flush(struct mmu_gather *tlb);
>> +extern void flush_tlb_pmd_range(struct mm_struct *mm, pmd_t *pmd,
>> + unsigned long addr);
>
> 'extern' is superflous
Ditto.
>> @@ -144,12 +147,21 @@ static int hash__init_new_context(struct mm_struct *mm)
>> return index;
>> }
>>
>> +void slb_setup_new_exec(void);
>
> Include arch/powerpc/mm/book3s64/internal.h instead
Will do.
>> diff --git a/arch/powerpc/mm/book3s64/pgtable.c b/arch/powerpc/mm/book3s64/pgtable.c
>> index 7d556b5513e4..57d2d797c4f6 100644
>> --- a/arch/powerpc/mm/book3s64/pgtable.c
>> +++ b/arch/powerpc/mm/book3s64/pgtable.c
>> @@ -535,7 +535,7 @@ static int __init pgtable_debugfs_setup(void)
>> }
>> arch_initcall(pgtable_debugfs_setup);
>>
>> -#ifdef CONFIG_ZONE_DEVICE
>> +#if defined(CONFIG_ZONE_DEVICE) && defined(ARCH_HAS_MEMREMAP_COMPAT_ALIGN)
>
> Patch 12 does
>
> select ARCH_HAS_MEMREMAP_COMPAT_ALIGN if PPC_BOOK3S_64
Ah, I meant to change that to PPC_64S_HASH_MMU.
>
> So this change is not needed
>
>> /*
>> * Override the generic version in mm/memremap.c.
>> *
>
>> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
>> index dd8241c009e5..30f764476c30 100644
>> --- a/arch/powerpc/xmon/xmon.c
>> +++ b/arch/powerpc/xmon/xmon.c
>> @@ -1160,9 +1160,11 @@ cmds(struct pt_regs *excp)
>> show_tasks();
>> break;
>> #ifdef CONFIG_PPC_BOOK3S
>> +#if defined(CONFIG_PPC32) || defined(CONFIG_PPC_64S_HASH_MMU)
>
> I think you'll get a build failure here.
>
> dump_segments() is defined only with CONFIG_PPC_BOOK3S_64 and
> CONFIG_PPC_BOOK3S_32, see
>
> https://elixir.bootlin.com/linux/v5.15-rc5/source/arch/powerpc/xmon/xmon.c#L3745
>
> and
>
> https://elixir.bootlin.com/linux/v5.15-rc5/source/arch/powerpc/xmon/xmon.c#L3784
AFAIKS it is okay because it still has ifdef BOOK3S?
Thanks,
Nick
next prev parent reply other threads:[~2021-10-22 9:35 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-21 22:29 [PATCH v3 00/18] powerpc: Make hash MMU code build configurable Nicholas Piggin
2021-10-21 22:29 ` [PATCH v3 01/18] powerpc: Remove unused FW_FEATURE_NATIVE references Nicholas Piggin
2021-10-21 22:29 ` [PATCH v3 02/18] powerpc: Rename PPC_NATIVE to PPC_HASH_MMU_NATIVE Nicholas Piggin
2021-10-21 22:29 ` [PATCH v3 03/18] powerpc/pseries: Stop selecting PPC_HASH_MMU_NATIVE Nicholas Piggin
2021-10-21 22:29 ` [PATCH v3 04/18] powerpc/64s: Move and rename do_bad_slb_fault as it is not hash specific Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 05/18] powerpc/pseries: move pseries_lpar_register_process_table() out from hash specific code Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 06/18] powerpc/pseries: lparcfg don't include slb_size line in radix mode Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 07/18] powerpc/64s: move THP trace point creation out of hash specific file Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 08/18] powerpc/64s: Make flush_and_reload_slb a no-op when radix is enabled Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 09/18] powerpc/64s: move page size definitions from hash specific file Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 10/18] powerpc/64s: Rename hash_hugetlbpage.c to hugetlbpage.c Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 11/18] powerpc/64: pcpu setup avoid reading mmu_linear_psize on 64e or radix Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 12/18] powerpc: make memremap_compat_align 64s-only Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 13/18] powerpc/64e: remove mmu_linear_psize Nicholas Piggin
2021-10-22 6:49 ` Christophe Leroy
2021-10-22 9:21 ` Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 14/18] powerpc/64s: Clear MMU_FTR_HPTE_TABLE when booting in radix Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 15/18] powerpc/64s: Make hash MMU support configurable Nicholas Piggin
2021-10-22 7:02 ` Christophe Leroy
2021-10-22 9:30 ` Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 16/18] powerpc/64s: Move hash MMU support code under CONFIG_PPC_64S_HASH_MMU Nicholas Piggin
2021-10-22 7:18 ` Christophe Leroy
2021-10-22 9:34 ` Nicholas Piggin [this message]
2021-10-22 9:39 ` Christophe Leroy
2021-10-22 9:44 ` Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 17/18] powerpc/configs/microwatt: add POWER9_CPU Nicholas Piggin
2021-10-21 22:30 ` [PATCH v3 18/18] powerpc/microwatt: Don't select the hash MMU code Nicholas Piggin
2021-10-22 7:18 ` Christophe Leroy
2021-10-22 9:34 ` Nicholas Piggin
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=1634895021.4d2890ma8z.astroid@bobo.none \
--to=npiggin@gmail.com \
--cc=christophe.leroy@csgroup.eu \
--cc=linuxppc-dev@lists.ozlabs.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).