Re: Proposal to realize hot-add *several sections one time*

David Rientjes
2014-06-11T22:08:44Z

On Wed, 11 Jun 2014, Zhang Zhen wrote:

> Hi,
>
> Now we can hot-add memory by
>
> % echo start_address_of_new_memory > /sys/devices/system/memory/probe
>
> Then, [start_address_of_new_memory, start_address_of_new_memory +
> memory_block_size] memory range is hot-added.
>
> But we can only hot-add *one section one time* by this way.
> Whether we can add an argument on behalf of the count of the sections to add ?
> So we can can hot-add *several sections one time*. Just like:
>

Not necessarily true, it depends on sections_per_block. Don't believe
Documentation/memory-hotplug.txt that suggests this is only for powerpc,
x86 and sh allow this interface as well.

> % echo start_address_of_new_memory count_of_sections > /sys/devices/system/memory/probe
>
> Then, [start_address_of_new_memory, start_address_of_new_memory +
> count_of_sections * memory_block_size] memory range is hot-added.
>
> If this proposal is reasonable, i will send a patch to realize it.
>

The problem is knowing how much memory is being onlined so that you can
definitively determine what count_of_sections should be. The number of
pages per memory section depends on PAGE_SIZE and SECTION_SIZE_BITS which
differ depending on the architectures that support this interface. So if
you support count_of_sections, it would return errno even though you have
onlined some sections.