2022-05-05 17:35:20

by Michael Ellerman

[permalink] [raw]
Subject: [PATCH 1/2] powerpc: Add generic PAGE_SIZE config symbols

Other arches (sh, mips, hexagon) use standard names for PAGE_SIZE
related config symbols.

Add matching symbols for powerpc, which are enabled by default but
depend on our architecture specific PAGE_SIZE symbols.

This allows generic/driver code to express dependencies on the PAGE_SIZE
without needing to refer to architecture specific config symbols.

Signed-off-by: Michael Ellerman <[email protected]>
---
arch/powerpc/Kconfig | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 145af02df3dc..02994361cc7a 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -759,6 +759,22 @@ config PPC_256K_PAGES

endchoice

+config PAGE_SIZE_4KB
+ def_bool y
+ depends on PPC_4K_PAGES
+
+config PAGE_SIZE_16KB
+ def_bool y
+ depends on PPC_16K_PAGES
+
+config PAGE_SIZE_64KB
+ def_bool y
+ depends on PPC_64K_PAGES
+
+config PAGE_SIZE_256KB
+ def_bool y
+ depends on PPC_256K_PAGES
+
config PPC_PAGE_SHIFT
int
default 18 if PPC_256K_PAGES
--
2.35.1



2022-05-09 07:38:17

by Michael Ellerman

[permalink] [raw]
Subject: [PATCH 2/2] arch/Kconfig: Drop references to powerpc PAGE_SIZE symbols

In the previous commit powerpc added PAGE_SIZE related config symbols
using the generic names.

So there's no need to refer to them in the definition of
PAGE_SIZE_LESS_THAN_64KB etc, the negative dependency on the generic
symbol is sufficient (in this case !PAGE_SIZE_64KB).

Signed-off-by: Michael Ellerman <[email protected]>
---
arch/Kconfig | 2 --
1 file changed, 2 deletions(-)

diff --git a/arch/Kconfig b/arch/Kconfig
index 31c4fdc4a4ba..d235c9089d17 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -1007,12 +1007,10 @@ config PAGE_SIZE_LESS_THAN_64KB
depends on !IA64_PAGE_SIZE_64KB
depends on !PAGE_SIZE_64KB
depends on !PARISC_PAGE_SIZE_64KB
- depends on !PPC_64K_PAGES
depends on PAGE_SIZE_LESS_THAN_256KB

config PAGE_SIZE_LESS_THAN_256KB
def_bool y
- depends on !PPC_256K_PAGES
depends on !PAGE_SIZE_256KB

# This allows to use a set of generic functions to determine mmap base
--
2.35.1


2022-05-18 10:02:13

by Christophe Leroy

[permalink] [raw]
Subject: Re: [PATCH 1/2] powerpc: Add generic PAGE_SIZE config symbols



Le 05/05/2022 à 14:51, Michael Ellerman a écrit :
> Other arches (sh, mips, hexagon) use standard names for PAGE_SIZE
> related config symbols.
>
> Add matching symbols for powerpc, which are enabled by default but
> depend on our architecture specific PAGE_SIZE symbols.
>
> This allows generic/driver code to express dependencies on the PAGE_SIZE
> without needing to refer to architecture specific config symbols.

I guess next step should be to get rid of powerpc specific symbols and
use generic symbols instead.

We have (only) 111 occurences of it.


>
> Signed-off-by: Michael Ellerman <[email protected]>
> ---
> arch/powerpc/Kconfig | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 145af02df3dc..02994361cc7a 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -759,6 +759,22 @@ config PPC_256K_PAGES
>
> endchoice
>
> +config PAGE_SIZE_4KB
> + def_bool y
> + depends on PPC_4K_PAGES
> +
> +config PAGE_SIZE_16KB
> + def_bool y
> + depends on PPC_16K_PAGES
> +
> +config PAGE_SIZE_64KB
> + def_bool y
> + depends on PPC_64K_PAGES
> +
> +config PAGE_SIZE_256KB
> + def_bool y
> + depends on PPC_256K_PAGES
> +
> config PPC_PAGE_SHIFT
> int
> default 18 if PPC_256K_PAGES

2022-05-18 13:02:51

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH 1/2] powerpc: Add generic PAGE_SIZE config symbols

Christophe Leroy <[email protected]> writes:
> Le 05/05/2022 à 14:51, Michael Ellerman a écrit :
>> Other arches (sh, mips, hexagon) use standard names for PAGE_SIZE
>> related config symbols.
>>
>> Add matching symbols for powerpc, which are enabled by default but
>> depend on our architecture specific PAGE_SIZE symbols.
>>
>> This allows generic/driver code to express dependencies on the PAGE_SIZE
>> without needing to refer to architecture specific config symbols.
>
> I guess next step should be to get rid of powerpc specific symbols and
> use generic symbols instead.
>
> We have (only) 111 occurences of it.

I thought about doing that, but it's quite a bit of churn. Maybe it's
worth it though to avoid confusion between the two symbols.

There's probably some that could be converted to IS_ENABLED() at the
same time, especially in hash_utils.c.

cheers

2022-05-18 13:25:37

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH 1/2] powerpc: Add generic PAGE_SIZE config symbols

On Wed, May 18, 2022 at 2:00 PM Michael Ellerman <[email protected]> wrote:
>
> Christophe Leroy <[email protected]> writes:
> > Le 05/05/2022 à 14:51, Michael Ellerman a écrit :
> >> Other arches (sh, mips, hexagon) use standard names for PAGE_SIZE
> >> related config symbols.
> >>
> >> Add matching symbols for powerpc, which are enabled by default but
> >> depend on our architecture specific PAGE_SIZE symbols.
> >>
> >> This allows generic/driver code to express dependencies on the PAGE_SIZE
> >> without needing to refer to architecture specific config symbols.
> >
> > I guess next step should be to get rid of powerpc specific symbols and
> > use generic symbols instead.
> >
> > We have (only) 111 occurences of it.
>
> I thought about doing that, but it's quite a bit of churn. Maybe it's
> worth it though to avoid confusion between the two symbols.

I have actually done this at some point, but for some reason never sent it out,
see my old patch at:

https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/commit/?h=randconfig-5.15-next&id=184c7273ee367fda3626e35f0079f181075690c8

Feel free to take ideas or the entire patch from that.

Arnd

2022-05-18 13:32:47

by Christophe Leroy

[permalink] [raw]
Subject: Re: [PATCH 1/2] powerpc: Add generic PAGE_SIZE config symbols



Le 18/05/2022 à 15:21, Arnd Bergmann a écrit :
> On Wed, May 18, 2022 at 2:00 PM Michael Ellerman <[email protected]> wrote:
>>
>> Christophe Leroy <[email protected]> writes:
>>> Le 05/05/2022 à 14:51, Michael Ellerman a écrit :
>>>> Other arches (sh, mips, hexagon) use standard names for PAGE_SIZE
>>>> related config symbols.
>>>>
>>>> Add matching symbols for powerpc, which are enabled by default but
>>>> depend on our architecture specific PAGE_SIZE symbols.
>>>>
>>>> This allows generic/driver code to express dependencies on the PAGE_SIZE
>>>> without needing to refer to architecture specific config symbols.
>>>
>>> I guess next step should be to get rid of powerpc specific symbols and
>>> use generic symbols instead.
>>>
>>> We have (only) 111 occurences of it.
>>
>> I thought about doing that, but it's quite a bit of churn. Maybe it's
>> worth it though to avoid confusion between the two symbols.
>
> I have actually done this at some point, but for some reason never sent it out,
> see my old patch at:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/commit/?h=randconfig-5.15-next&id=184c7273ee367fda3626e35f0079f181075690c8
>
> Feel free to take ideas or the entire patch from that.
>


Well, at this point I was just talking about renaming the
CONFIG_PPC_xxK_PAGES symbols to the generic naming while still keeping
them in powerpc Kconfig.

You are going one step further by making it a generic arch symbol,
that's also a good idea and can be done more or less independantly.

Christophe

2022-05-25 01:20:50

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH 1/2] powerpc: Add generic PAGE_SIZE config symbols

On Thu, 5 May 2022 22:51:22 +1000, Michael Ellerman wrote:
> Other arches (sh, mips, hexagon) use standard names for PAGE_SIZE
> related config symbols.
>
> Add matching symbols for powerpc, which are enabled by default but
> depend on our architecture specific PAGE_SIZE symbols.
>
> This allows generic/driver code to express dependencies on the PAGE_SIZE
> without needing to refer to architecture specific config symbols.
>
> [...]

Applied to powerpc/next.

[1/2] powerpc: Add generic PAGE_SIZE config symbols
https://git.kernel.org/powerpc/c/d036dc79cccd748e2a101c80c31efada7be8bb7c
[2/2] arch/Kconfig: Drop references to powerpc PAGE_SIZE symbols
https://git.kernel.org/powerpc/c/aa06530a535ffe8ba8b68054003b6fb262a8ec6f

cheers