All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Nicholas Piggin <npiggin@gmail.com>, linuxppc-dev@lists.ozlabs.org
Subject: Re: [RFC PATCH 4/6] powerpc/64s: Make hash MMU code build configurable
Date: Sat, 28 Aug 2021 11:59:55 +0200	[thread overview]
Message-ID: <da2863dc-f8d9-f58b-0d52-7e1bd668718c@csgroup.eu> (raw)
In-Reply-To: <20210827163410.1177154-5-npiggin@gmail.com>



Le 27/08/2021 à 18:34, Nicholas Piggin a écrit :
> Introduce a new option CONFIG_PPC_64S_HASH_MMU which allows the 64s hash
> MMU code to be compiled out if radix is selected and the minimum
> supported CPU type is POWER9 or higher, and KVM is not selected.
> 
> This 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                          |  1 +
>   arch/powerpc/include/asm/book3s/64/mmu.h      | 22 +++++-
>   .../include/asm/book3s/64/tlbflush-hash.h     |  7 ++
>   arch/powerpc/include/asm/book3s/pgtable.h     |  4 ++
>   arch/powerpc/include/asm/mmu.h                | 38 +++++++++--
>   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/dt_cpu_ftrs.c             | 10 ++-
>   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                |  4 ++
>   arch/powerpc/kexec/core_64.c                  |  4 +-
>   arch/powerpc/kexec/ranges.c                   |  4 ++
>   arch/powerpc/kvm/Kconfig                      |  1 +
>   arch/powerpc/mm/book3s64/Makefile             | 17 +++--
>   arch/powerpc/mm/book3s64/hash_pgtable.c       |  1 -
>   arch/powerpc/mm/book3s64/hash_utils.c         | 10 ---
>   .../{hash_hugetlbpage.c => hugetlbpage.c}     |  6 ++
>   arch/powerpc/mm/book3s64/mmu_context.c        | 16 +++++
>   arch/powerpc/mm/book3s64/pgtable.c            | 22 +++++-
>   arch/powerpc/mm/book3s64/radix_pgtable.c      |  4 ++
>   arch/powerpc/mm/book3s64/slb.c                | 16 -----
>   arch/powerpc/mm/copro_fault.c                 |  2 +
>   arch/powerpc/mm/fault.c                       | 17 +++++
>   arch/powerpc/mm/pgtable.c                     | 10 ++-
>   arch/powerpc/platforms/Kconfig.cputype        | 20 +++++-
>   arch/powerpc/platforms/cell/Kconfig           |  1 +
>   arch/powerpc/platforms/maple/Kconfig          |  1 +
>   arch/powerpc/platforms/microwatt/Kconfig      |  2 +-
>   arch/powerpc/platforms/pasemi/Kconfig         |  1 +
>   arch/powerpc/platforms/powermac/Kconfig       |  1 +
>   arch/powerpc/platforms/powernv/Kconfig        |  2 +-
>   arch/powerpc/platforms/powernv/idle.c         |  2 +
>   arch/powerpc/platforms/powernv/setup.c        |  2 +
>   arch/powerpc/platforms/pseries/lpar.c         | 68 ++++++++++---------
>   arch/powerpc/platforms/pseries/lparcfg.c      |  2 +-
>   arch/powerpc/platforms/pseries/mobility.c     |  6 ++
>   arch/powerpc/platforms/pseries/ras.c          |  4 ++
>   arch/powerpc/platforms/pseries/reconfig.c     |  2 +
>   arch/powerpc/platforms/pseries/setup.c        |  6 +-
>   arch/powerpc/xmon/xmon.c                      |  8 ++-
>   47 files changed, 310 insertions(+), 111 deletions(-)
>   rename arch/powerpc/mm/book3s64/{hash_hugetlbpage.c => hugetlbpage.c} (95%)

Whaou ! Huge patch.

Several places you should be able to use IS_ENABLED() or simply radix_enabled() instead of #ifdefs 
and rely on GCC to opt out stuff when radix_enabled() folds into 'true'.

I may do more detailed comments later when I have time.

Christophe

  parent reply	other threads:[~2021-08-28 10:00 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-27 16:34 [RFC PATCH 0/6] powerpc: Make hash MMU code build configurable Nicholas Piggin
2021-08-27 16:34 ` [RFC PATCH 1/6] powerpc: Remove unused FW_FEATURE_NATIVE references Nicholas Piggin
2021-08-27 16:34 ` [RFC PATCH 2/6] powerpc: Rename PPC_NATIVE to PPC_HASH_MMU_NATIVE Nicholas Piggin
2021-08-27 16:34 ` [RFC PATCH 3/6] powerpc/pseries: Stop selecting PPC_HASH_MMU_NATIVE Nicholas Piggin
2021-08-27 16:34 ` [RFC PATCH 4/6] powerpc/64s: Make hash MMU code build configurable Nicholas Piggin
2021-08-28  9:34   ` Christophe Leroy
2021-08-30  6:51     ` Nicholas Piggin
2021-08-28  9:59   ` Christophe Leroy [this message]
2021-08-30  6:55     ` Nicholas Piggin
2021-08-30  7:12       ` Christophe Leroy
2021-08-27 16:34 ` [RFC PATCH 5/6] powerpc/microwatt: select POWER9_CPU Nicholas Piggin
2021-08-28  9:50   ` Christophe Leroy
2021-08-30  6:56     ` Nicholas Piggin
2021-08-27 16:34 ` [RFC PATCH 6/6] powerpc/microwatt: Stop building the hash MMU code Nicholas Piggin
2021-08-28  9:54   ` Christophe Leroy
2021-08-30  3:24     ` Michael Ellerman
2021-08-30  6:58       ` 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=da2863dc-f8d9-f58b-0d52-7e1bd668718c@csgroup.eu \
    --to=christophe.leroy@csgroup.eu \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=npiggin@gmail.com \
    /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 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.