From: Florian Fainelli <f.fainelli@gmail.com>
To: Mike Rapoport <rppt@linux.ibm.com>,
Russell King - ARM Linux admin <linux@armlinux.org.uk>
Cc: Doug Berger <opendmb@gmail.com>, Arnd Bergmann <arnd@arndb.de>,
sboyd@kernel.org, Kevin Cernekee <cernekee@gmail.com>,
Gregory Fong <gregory.0xf0@gmail.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/2] ARM: Remove redundant ARCH_SPARSEMEM_DEFAULT setting
Date: Thu, 7 May 2020 13:47:57 -0700 [thread overview]
Message-ID: <b8df0db2-89f3-cb2c-181b-d7526518b92b@gmail.com> (raw)
In-Reply-To: <20200507202956.GG683243@linux.ibm.com>
On 5/7/2020 1:29 PM, Mike Rapoport wrote:
> On Thu, May 07, 2020 at 11:30:39AM +0100, Russell King - ARM Linux admin wrote:
>> On Wed, May 06, 2020 at 04:50:08PM -0700, Florian Fainelli wrote:
>>> From: Kevin Cernekee <cernekee@gmail.com>
>>>
>>> If ARCH_SPARSEMEM_ENABLE=y and ARCH_{FLATMEM,DISCONTIGMEM}_ENABLE=n,
>>> then the logic in mm/Kconfig already makes CONFIG_SPARSEMEM the only
>>> choice. This is true for all of the existing ARM users of
>>> ARCH_SPARSEMEM_ENABLE.
>>>
>>> Forcing ARCH_SPARSEMEM_DEFAULT=y if ARCH_SPARSEMEM_ENABLE=y prevents
>>> us from ever defaulting to FLATMEM, so we should remove this setting.
>>
>> No explanation why that is desirable.
>>
>>> -config ARCH_SPARSEMEM_DEFAULT
>>> - def_bool ARCH_SPARSEMEM_ENABLE
>>> -
>>
>> What this basically says is ARCH_SPARSEMEM_ENABLE=ARCH_SPARSEMEM_DEFAULT,
>> which is exactly what we want for the non-multiplatform boards that
>> select ARCH_SPARSEMEM_ENABLE - we _want_ them to default to sparsemem
>> because that is what the platform requires.
>
> The ARCH_SPARSEMEM_DEFAULT knob has no effect unless manual selection
> of the memory model is enabled, i.e. arch Kconfig sets
> ARCH_SELECT_MEMORY_MODEL to 'y'.
>
> Otherwise, ARCH_SPARSEMEM_ENABLE is sufficient to select SPARSEMEM over
> FLATMEM:
>
> config SPARSEMEM
> def_bool y
> depends on (!SELECT_MEMORY_MODEL && ARCH_SPARSEMEM_ENABLE) || SPARSEMEM_MANUAL
>
> config FLATMEM
> def_bool y
> depends on (!DISCONTIGMEM && !SPARSEMEM) || FLATMEM_MANUAL
>
>> For example, with RiscPC, which selects ARCH_SPARSEMEM_ENABLE, we have
>> four banks of memory at 0x10000000, 0x14000000, 0x18000000 and
>> 0x1c000000. These correspond with the two memory slots - the first two
>> for the first slot, and the second two for the second slot. Each slot
>> has two banks. The size of each memory bank depends on the size of the
>> module.
>>
>> Flatmem is completely unable to work with this setup if all banks are
>> populated, and the first bank does not contain enough memory to allocate
>> the struct page array. So, sparsemem is the only option there.
>>
>> Hence, for these platforms, we want sparsemem and only sparsemem, not
>> flatmem.
>>
>> So, this patch which makes it possible to select flatmem is completely
>> out of the question for these platforms.
>
> This patch alone won't make it possible to select flatmem for these
> platforms, actually, as of now it changes nothing.
>
> The removal of ARCH_SPARSEMEM_DEFAULT will have an effect only with
> addtion of ARCH_SELECT_MEMORY_MODEL.
>
> If I understood Florian's intention correctly, the goal was to allow
> manual selection of the memory model for multiplatform builds that today
> implicitly use flatmem.
That is correct.
>
> I think that the patch below would achieve that without changing the
> current defaults and without forcing flatmem on the platforms that
> already explicitly select sparsemem.
Agree, with your patch, we have the following:
mutli_v7_defonfig -> FLATMEM
ep93xx_defconfig -> SPARSEMEM
rpc_defconfig -> SPARSEMEM
assabet_defconfig -> SPARSEMEM
with the bonus that when you run menuconfig you can now select sparsemem
for a multi-platform build, which was the intention.
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 66a04f6f4775..b6eb1a28ca27 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -312,6 +312,9 @@ choice
> config ARCH_MULTIPLATFORM
> bool "Allow multiple platforms to be selected"
> depends on MMU
> + select ARCH_FLATMEM_ENABLE
> + select ARCH_SPARSEMEM_ENABLE
> + select ARCH_SELECT_MEMORY_MODEL
> select ARM_HAS_SG_CHAIN
> select ARM_PATCH_PHYS_VIRT
> select AUTO_ZRELADDR
> @@ -1515,11 +1518,14 @@ config OABI_COMPAT
> config ARCH_HAS_HOLES_MEMORYMODEL
> bool
>
> +config ARCH_FLATMEM_ENABLE
> + bool
> +
> config ARCH_SPARSEMEM_ENABLE
> bool
>
> -config ARCH_SPARSEMEM_DEFAULT
> - def_bool ARCH_SPARSEMEM_ENABLE
> +config ARCH_SELECT_MEMORY_MODEL
> + bool
>
> config HAVE_ARCH_PFN_VALID
> def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
>
>> --
>> RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
>> FTTC broadband for 0.8mile line in suburbia: sync at 10.2Mbps down 587kbps up
>
--
Florian
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-05-07 20:48 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-06 23:50 [PATCH 0/2] Allow either FLATMEM or SPARSEMEM on the multiplatform build Florian Fainelli
2020-05-06 23:50 ` [PATCH 1/2] ARM: Remove redundant ARCH_SPARSEMEM_DEFAULT setting Florian Fainelli
2020-05-07 7:27 ` Mike Rapoport
2020-05-07 10:30 ` Russell King - ARM Linux admin
2020-05-07 17:25 ` Florian Fainelli
2020-05-07 18:50 ` Russell King - ARM Linux admin
2020-05-07 19:38 ` Florian Fainelli
2020-05-07 20:08 ` [PATCH] arm: use SPARSMEM_STATIC when SPARSEMEM is enabled (Was: [PATCH 1/2] ARM: Remove redundant ARCH_SPARSEMEM_DEFAULT setting) Mike Rapoport
2020-05-08 20:20 ` Florian Fainelli
2020-05-07 20:29 ` [PATCH 1/2] ARM: Remove redundant ARCH_SPARSEMEM_DEFAULT setting Mike Rapoport
2020-05-07 20:47 ` Florian Fainelli [this message]
2020-05-08 21:41 ` Mike Rapoport
2020-05-08 21:45 ` Florian Fainelli
2020-05-06 23:50 ` [PATCH 2/2] ARM: Allow either FLATMEM or SPARSEMEM on the multiplatform build Florian Fainelli
2020-05-07 7:27 ` Mike Rapoport
2020-05-07 20:11 ` Florian Fainelli
2020-05-18 15:58 ` Florian Fainelli
2020-05-18 19:45 ` Mike Rapoport
2020-05-19 7:59 ` Arnd Bergmann
2020-05-19 14:43 ` Mike Rapoport
2020-05-19 15:04 ` Russell King - ARM Linux admin
2020-05-19 15:27 ` Mike Rapoport
2020-05-19 15:32 ` Arnd Bergmann
2020-05-19 16:54 ` Russell King - ARM Linux admin
2020-05-19 17:59 ` Mike Rapoport
2020-05-19 20:42 ` Arnd Bergmann
2020-05-21 2:45 ` Florian Fainelli
2020-05-21 7:47 ` Arnd Bergmann
2020-05-07 8:14 ` [PATCH 0/2] " Russell King - ARM Linux admin
2020-05-07 10:09 ` Mike Rapoport
-- strict thread matches above, loose matches on Subject: below --
2020-05-21 8:18 [PATCH 0/2] ARM: " Mike Rapoport
2020-05-21 8:18 ` [PATCH 1/2] ARM: Remove redundant ARCH_SPARSEMEM_DEFAULT setting Mike Rapoport
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=b8df0db2-89f3-cb2c-181b-d7526518b92b@gmail.com \
--to=f.fainelli@gmail.com \
--cc=arnd@arndb.de \
--cc=cernekee@gmail.com \
--cc=gregory.0xf0@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=opendmb@gmail.com \
--cc=rppt@linux.ibm.com \
--cc=sboyd@kernel.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).