[PATCH 0/2] Fix subsection vmemmap_populate logic

Zhenhua Huang posted 2 patches 1 year, 2 months ago
There is a newer version of this series
arch/arm64/mm/mmu.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
[PATCH 0/2] Fix subsection vmemmap_populate logic
Posted by Zhenhua Huang 1 year, 2 months ago
To perform memory hotplug operations, the memmap (aka struct page) will be
updated. For arm64 with 4K page size, the typical granularity is 128M,
which corresponds to a 2M memmap buffer.
Commit 2045a3b8911b ("mm/sparse-vmemmap: generalise vmemmap_populate_hugepages()")
optimizes this 2M buffer to be mapped with PMD huge pages. However,
commit ba72b4c8cf60 ("mm/sparsemem: support sub-section hotplug")
which supports 2M subsection hotplug granularity, causes other issues
(refer to the change log of patch #1). The logic is adjusted to populate
with huge pages only if the hotplug address/size is section-aligned.

Zhenhua Huang (2):
  arm64: mm: vmemmap populate to page level if not section aligned
  arm64: mm: implement vmemmap_check_pmd for arm64

 arch/arm64/mm/mmu.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

-- 
2.25.1
Re: [PATCH 0/2] Fix subsection vmemmap_populate logic
Posted by Zhenhua Huang 1 year, 2 months ago

On 2024/11/21 15:12, Zhenhua Huang wrote:
> To perform memory hotplug operations, the memmap (aka struct page) will be
> updated. For arm64 with 4K page size, the typical granularity is 128M,
> which corresponds to a 2M memmap buffer.
> Commit 2045a3b8911b ("mm/sparse-vmemmap: generalise vmemmap_populate_hugepages()")
> optimizes this 2M buffer to be mapped with PMD huge pages. However,
> commit ba72b4c8cf60 ("mm/sparsemem: support sub-section hotplug")
> which supports 2M subsection hotplug granularity, causes other issues
> (refer to the change log of patch #1). The logic is adjusted to populate
> with huge pages only if the hotplug address/size is section-aligned.

Could any expert please help review ?

> 
> Zhenhua Huang (2):
>    arm64: mm: vmemmap populate to page level if not section aligned
>    arm64: mm: implement vmemmap_check_pmd for arm64
> 
>   arch/arm64/mm/mmu.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
>
Re: [PATCH 0/2] Fix subsection vmemmap_populate logic
Posted by Zhenhua Huang 1 year, 2 months ago

On 2024/11/28 15:26, Zhenhua Huang wrote:
> 
> 
> On 2024/11/21 15:12, Zhenhua Huang wrote:
>> To perform memory hotplug operations, the memmap (aka struct page) 
>> will be
>> updated. For arm64 with 4K page size, the typical granularity is 128M,
>> which corresponds to a 2M memmap buffer.
>> Commit 2045a3b8911b ("mm/sparse-vmemmap: generalise 
>> vmemmap_populate_hugepages()")
>> optimizes this 2M buffer to be mapped with PMD huge pages. However,
>> commit ba72b4c8cf60 ("mm/sparsemem: support sub-section hotplug")
>> which supports 2M subsection hotplug granularity, causes other issues
>> (refer to the change log of patch #1). The logic is adjusted to populate
>> with huge pages only if the hotplug address/size is section-aligned.
> 
> Could any expert please help review ?

Gentle reminder for review..

> 
>>
>> Zhenhua Huang (2):
>>    arm64: mm: vmemmap populate to page level if not section aligned
>>    arm64: mm: implement vmemmap_check_pmd for arm64
>>
>>   arch/arm64/mm/mmu.c | 7 +++++--
>>   1 file changed, 5 insertions(+), 2 deletions(-)
>>
> 

Re: [PATCH 0/2] Fix subsection vmemmap_populate logic
Posted by Andrew Morton 1 year, 2 months ago
On Fri, 6 Dec 2024 17:13:39 +0800 Zhenhua Huang <quic_zhenhuah@quicinc.com> wrote:

> 
> 
> On 2024/11/28 15:26, Zhenhua Huang wrote:
> > 
> > 
> > On 2024/11/21 15:12, Zhenhua Huang wrote:
> >> To perform memory hotplug operations, the memmap (aka struct page) 
> >> will be
> >> updated. For arm64 with 4K page size, the typical granularity is 128M,
> >> which corresponds to a 2M memmap buffer.
> >> Commit 2045a3b8911b ("mm/sparse-vmemmap: generalise 
> >> vmemmap_populate_hugepages()")
> >> optimizes this 2M buffer to be mapped with PMD huge pages. However,
> >> commit ba72b4c8cf60 ("mm/sparsemem: support sub-section hotplug")
> >> which supports 2M subsection hotplug granularity, causes other issues
> >> (refer to the change log of patch #1). The logic is adjusted to populate
> >> with huge pages only if the hotplug address/size is section-aligned.
> > 
> > Could any expert please help review ?
> 
> Gentle reminder for review..
> 


MM developers work on the linux-mm mailing list, which was not cc'ed.

Please address Catalin's review comment
(https://lkml.kernel.org/r/Z1Mwo5OajFZQYlOg@arm.com) then resend a v2
series with the appropriate cc's.
Re: [PATCH 0/2] Fix subsection vmemmap_populate logic
Posted by Zhenhua Huang 1 year, 2 months ago

On 2024/12/7 14:14, Andrew Morton wrote:
> On Fri, 6 Dec 2024 17:13:39 +0800 Zhenhua Huang <quic_zhenhuah@quicinc.com> wrote:
> 
>>
>>
>> On 2024/11/28 15:26, Zhenhua Huang wrote:
>>>
>>>
>>> On 2024/11/21 15:12, Zhenhua Huang wrote:
>>>> To perform memory hotplug operations, the memmap (aka struct page)
>>>> will be
>>>> updated. For arm64 with 4K page size, the typical granularity is 128M,
>>>> which corresponds to a 2M memmap buffer.
>>>> Commit 2045a3b8911b ("mm/sparse-vmemmap: generalise
>>>> vmemmap_populate_hugepages()")
>>>> optimizes this 2M buffer to be mapped with PMD huge pages. However,
>>>> commit ba72b4c8cf60 ("mm/sparsemem: support sub-section hotplug")
>>>> which supports 2M subsection hotplug granularity, causes other issues
>>>> (refer to the change log of patch #1). The logic is adjusted to populate
>>>> with huge pages only if the hotplug address/size is section-aligned.
>>>
>>> Could any expert please help review ?
>>
>> Gentle reminder for review..
>>
> 
> 
> MM developers work on the linux-mm mailing list, which was not cc'ed.
> 
> Please address Catalin's review comment
> (https://lkml.kernel.org/r/Z1Mwo5OajFZQYlOg@arm.com) then resend a v2
> series with the appropriate cc's.

Thanks Andrew! Will do. I was realizing I couldn't fully rely on 
get_maintainers script :)

> 
>