[RFC PATCH] powerpc: Disabling MEMORY_HOTPLUG_DEFAULT_ONLINE option for PPC64 arch
Nathan Fontenot
nfont at linux.vnet.ibm.com
Wed Aug 2 00:05:17 AEST 2017
On 08/01/2017 04:59 AM, Michael Ellerman wrote:
> Daniel Henrique Barboza <danielhb at linux.vnet.ibm.com> writes:
>
>> Commit 943db62c316c ("powerpc/pseries: Revert 'Auto-online
>> hotplugged memory'") reverted the auto-online feature for pseries due
>> to problems with LMB removals not updating the device struct properly.
>> Among other things, this commit made the following change in
>> arch/powerpc/configs/pseries_defconfig:
>>
>> @@ -58,7 +58,6 @@ CONFIG_KEXEC_FILE=y
>> CONFIG_IRQ_ALL_CPUS=y
>> CONFIG_MEMORY_HOTPLUG=y
>> CONFIG_MEMORY_HOTREMOVE=y
>> -CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
>> CONFIG_KSM=y
>>
>> The intent was to disable the option in the defconfig of pseries, since
>> after that the code doesn't have this support anymore.
>
> It's always polite to Cc the author of a commit you're referring to, so
> I added Nathan.
>
> The intention when we merged that fix was that the auto-online code
> would be "fixed" to mark the device online. I say "fixed" because it
> wasn't entirely clear if that was the correct behaviour, though it
> definitely seemed like it should be.
>
> I've lost track of where/if the discussion got to on whether the
> auto-online code should do that or not. Did anything get resolved?
I think, though I should go back and test to be sure, that everything
works in the latest mainline code. The issue causing this to be a problem
was in the original implementation of auto_online support. If you wanted
to auto online memory, the code was calling memory_block_change_state().
This worked but did not update the device struct for each of the memory
block that was online'ed such that dev->offline == true even after the
memory was online.
I sent a patch earlier this year (commit dc18d706a436) that corrected
this to call device_online() instead of memory_block_change_state().
With this fix (appears to have gone into the 4.11 kernel) it should be
possible to use auto_online on power systems.
At this point I don't think we need this patch to disable auto online
for ppc64. I would be curious if this is still broken with the latest
mainline code though.
-Nathan
>
>> However, this change
>> alone isn't enough to prevent situations such as [1], where
>> distros can enable the option unaware of the consequences of
>> doing it (e.g. breaking LMB hotplug altogether).
>>
>> Instead of relying on all distros knowing that pseries can't handle
>> CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y after 943db62c316c, this patch
>> changes mm/Kconfig to make the MEMORY_HOTPLUG_DEFAULT_ONLINE config
>> unavailable for the PPC64 arch.
>>
>> [1] https://bugzilla.redhat.com/show_bug.cgi?id=1476380
>>
>> Fixes: 943db62c316c ("powerpc/pseries: Revert 'Auto-online hotplugged memory'")
>> Signed-off-by: Daniel Henrique Barboza <danielhb at linux.vnet.ibm.com>
>> ---
>> mm/Kconfig | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> I don't own that file, so we at least need an Ack from the mm folks.
>
> cheers
>
>> diff --git a/mm/Kconfig b/mm/Kconfig
>> index 48b1af4..a342c77 100644
>> --- a/mm/Kconfig
>> +++ b/mm/Kconfig
>> @@ -169,7 +169,7 @@ config MEMORY_HOTPLUG_SPARSE
>> config MEMORY_HOTPLUG_DEFAULT_ONLINE
>> bool "Online the newly added memory blocks by default"
>> default n
>> - depends on MEMORY_HOTPLUG
>> + depends on MEMORY_HOTPLUG && !PPC64
>> help
>> This option sets the default policy setting for memory hotplug
>> onlining policy (/sys/devices/system/memory/auto_online_blocks) which
>> --
>> 2.9.4
>
More information about the Linuxppc-dev
mailing list