mbox series

[V2,0/2] arm64/mm: Enable memory hot remove

Message ID 1555221553-18845-1-git-send-email-anshuman.khandual@arm.com (mailing list archive)
Headers show
Series arm64/mm: Enable memory hot remove | expand

Message

Anshuman Khandual April 14, 2019, 5:59 a.m. UTC
This series enables memory hot remove on arm64 after fixing a memblock
removal ordering problem in generic __remove_memory(). This is based
on the following arm64 working tree.

git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core

Testing:

Tested hot remove on arm64 for all 4K, 16K, 64K page config options with
all possible VA_BITS and PGTABLE_LEVELS combinations. Build tested on non
arm64 platforms.

Changes in V2:

- Added all received review and ack tags
- Split the series from ZONE_DEVICE enablement for better review

- Moved memblock re-order patch to the front as per Robin Murphy
- Updated commit message on memblock re-order patch per Michal Hocko

- Dropped [pmd|pud]_large() definitions
- Used existing [pmd|pud]_sect() instead of earlier [pmd|pud]_large()
- Removed __meminit and __ref tags as per Oscar Salvador
- Dropped unnecessary 'ret' init in arch_add_memory() per Robin Murphy
- Skipped calling into pgtable_page_dtor() for linear mapping page table
  pages and updated all relevant functions

Changes in V1: (https://lkml.org/lkml/2019/4/3/28)

Anshuman Khandual (2):
  mm/hotplug: Reorder arch_remove_memory() call in __remove_memory()
  arm64/mm: Enable memory hot remove

 arch/arm64/Kconfig               |   3 +
 arch/arm64/include/asm/pgtable.h |   2 +
 arch/arm64/mm/mmu.c              | 221 ++++++++++++++++++++++++++++++++++++++-
 mm/memory_hotplug.c              |   3 +-
 4 files changed, 225 insertions(+), 4 deletions(-)

Comments

David Hildenbrand May 13, 2019, 8:22 a.m. UTC | #1
On 14.04.19 07:59, Anshuman Khandual wrote:
> This series enables memory hot remove on arm64 after fixing a memblock
> removal ordering problem in generic __remove_memory(). This is based
> on the following arm64 working tree.
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
> 
> Testing:
> 
> Tested hot remove on arm64 for all 4K, 16K, 64K page config options with
> all possible VA_BITS and PGTABLE_LEVELS combinations. Build tested on non
> arm64 platforms.
> 
> Changes in V2:
> 
> - Added all received review and ack tags
> - Split the series from ZONE_DEVICE enablement for better review
> 
> - Moved memblock re-order patch to the front as per Robin Murphy
> - Updated commit message on memblock re-order patch per Michal Hocko
> 
> - Dropped [pmd|pud]_large() definitions
> - Used existing [pmd|pud]_sect() instead of earlier [pmd|pud]_large()
> - Removed __meminit and __ref tags as per Oscar Salvador
> - Dropped unnecessary 'ret' init in arch_add_memory() per Robin Murphy
> - Skipped calling into pgtable_page_dtor() for linear mapping page table
>   pages and updated all relevant functions
> 
> Changes in V1: (https://lkml.org/lkml/2019/4/3/28)
> 
> Anshuman Khandual (2):
>   mm/hotplug: Reorder arch_remove_memory() call in __remove_memory()
>   arm64/mm: Enable memory hot remove
> 
>  arch/arm64/Kconfig               |   3 +
>  arch/arm64/include/asm/pgtable.h |   2 +
>  arch/arm64/mm/mmu.c              | 221 ++++++++++++++++++++++++++++++++++++++-
>  mm/memory_hotplug.c              |   3 +-
>  4 files changed, 225 insertions(+), 4 deletions(-)
> 

What's the progress of this series? I'll need arch_remove_memory() for
the series

[PATCH v2 0/8] mm/memory_hotplug: Factor out memory block device handling
Anshuman Khandual May 13, 2019, 8:37 a.m. UTC | #2
On 05/13/2019 01:52 PM, David Hildenbrand wrote:
> On 14.04.19 07:59, Anshuman Khandual wrote:
>> This series enables memory hot remove on arm64 after fixing a memblock
>> removal ordering problem in generic __remove_memory(). This is based
>> on the following arm64 working tree.
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
>>
>> Testing:
>>
>> Tested hot remove on arm64 for all 4K, 16K, 64K page config options with
>> all possible VA_BITS and PGTABLE_LEVELS combinations. Build tested on non
>> arm64 platforms.
>>
>> Changes in V2:
>>
>> - Added all received review and ack tags
>> - Split the series from ZONE_DEVICE enablement for better review
>>
>> - Moved memblock re-order patch to the front as per Robin Murphy
>> - Updated commit message on memblock re-order patch per Michal Hocko
>>
>> - Dropped [pmd|pud]_large() definitions
>> - Used existing [pmd|pud]_sect() instead of earlier [pmd|pud]_large()
>> - Removed __meminit and __ref tags as per Oscar Salvador
>> - Dropped unnecessary 'ret' init in arch_add_memory() per Robin Murphy
>> - Skipped calling into pgtable_page_dtor() for linear mapping page table
>>   pages and updated all relevant functions
>>
>> Changes in V1: (https://lkml.org/lkml/2019/4/3/28)
>>
>> Anshuman Khandual (2):
>>   mm/hotplug: Reorder arch_remove_memory() call in __remove_memory()
>>   arm64/mm: Enable memory hot remove
>>
>>  arch/arm64/Kconfig               |   3 +
>>  arch/arm64/include/asm/pgtable.h |   2 +
>>  arch/arm64/mm/mmu.c              | 221 ++++++++++++++++++++++++++++++++++++++-
>>  mm/memory_hotplug.c              |   3 +-
>>  4 files changed, 225 insertions(+), 4 deletions(-)
>>
> 
> What's the progress of this series? I'll need arch_remove_memory() for
> the series
> 
> [PATCH v2 0/8] mm/memory_hotplug: Factor out memory block device handling
> 

Hello David,

I am almost done with the next version with respect to memory hot-remove i.e
arch_remove_memory(). But most of the time was spent addressing concerns with
respect to how memory hot remove is going to impact existing arm64 and generic
code which can concurrently walk or modify init_mm page table. I should be
sending out V3 this week or early next week.

- Anshuman
David Hildenbrand May 13, 2019, 10:01 a.m. UTC | #3
On 13.05.19 10:37, Anshuman Khandual wrote:
> 
> 
> On 05/13/2019 01:52 PM, David Hildenbrand wrote:
>> On 14.04.19 07:59, Anshuman Khandual wrote:
>>> This series enables memory hot remove on arm64 after fixing a memblock
>>> removal ordering problem in generic __remove_memory(). This is based
>>> on the following arm64 working tree.
>>>
>>> git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
>>>
>>> Testing:
>>>
>>> Tested hot remove on arm64 for all 4K, 16K, 64K page config options with
>>> all possible VA_BITS and PGTABLE_LEVELS combinations. Build tested on non
>>> arm64 platforms.
>>>
>>> Changes in V2:
>>>
>>> - Added all received review and ack tags
>>> - Split the series from ZONE_DEVICE enablement for better review
>>>
>>> - Moved memblock re-order patch to the front as per Robin Murphy
>>> - Updated commit message on memblock re-order patch per Michal Hocko
>>>
>>> - Dropped [pmd|pud]_large() definitions
>>> - Used existing [pmd|pud]_sect() instead of earlier [pmd|pud]_large()
>>> - Removed __meminit and __ref tags as per Oscar Salvador
>>> - Dropped unnecessary 'ret' init in arch_add_memory() per Robin Murphy
>>> - Skipped calling into pgtable_page_dtor() for linear mapping page table
>>>   pages and updated all relevant functions
>>>
>>> Changes in V1: (https://lkml.org/lkml/2019/4/3/28)
>>>
>>> Anshuman Khandual (2):
>>>   mm/hotplug: Reorder arch_remove_memory() call in __remove_memory()
>>>   arm64/mm: Enable memory hot remove
>>>
>>>  arch/arm64/Kconfig               |   3 +
>>>  arch/arm64/include/asm/pgtable.h |   2 +
>>>  arch/arm64/mm/mmu.c              | 221 ++++++++++++++++++++++++++++++++++++++-
>>>  mm/memory_hotplug.c              |   3 +-
>>>  4 files changed, 225 insertions(+), 4 deletions(-)
>>>
>>
>> What's the progress of this series? I'll need arch_remove_memory() for
>> the series
>>
>> [PATCH v2 0/8] mm/memory_hotplug: Factor out memory block device handling
>>
> 
> Hello David,
> 
> I am almost done with the next version with respect to memory hot-remove i.e
> arch_remove_memory(). But most of the time was spent addressing concerns with
> respect to how memory hot remove is going to impact existing arm64 and generic
> code which can concurrently walk or modify init_mm page table. I should be
> sending out V3 this week or early next week.

Okay, thanks!

> 
> - Anshuman   
>