mbox series

[v2,0/4] mm/mremap: cleanup move_page_tables() a little

Message ID 20200129002642.13508-1-richardw.yang@linux.intel.com (mailing list archive)
Headers show
Series mm/mremap: cleanup move_page_tables() a little | expand

Message

Wei Yang Jan. 29, 2020, 12:26 a.m. UTC
move_page_tables() tries to move page table by PMD or PTE.

The root reason is if it tries to move PMD, both old and new range should
be PMD aligned. But current code calculate old range and new range
separately.  This leads to some redundant check and calculation.

This cleanup tries to consolidate the range check in one place to reduce
some extra range handling.

v2:
  * remove 3rd patch which doesn't work on ARM platform. Thanks report from
    Dmitry Osipenko

Wei Yang (4):
  mm/mremap: format the check in move_normal_pmd() same as
    move_huge_pmd()
  mm/mremap: it is sure to have enough space when extent meets
    requirement
  mm/mremap: calculate extent in one place
  mm/mremap: start addresses are properly aligned

 include/linux/huge_mm.h |  2 +-
 mm/huge_memory.c        |  8 +-------
 mm/mremap.c             | 17 ++++++-----------
 3 files changed, 8 insertions(+), 19 deletions(-)

Comments

Dmitry Osipenko Jan. 30, 2020, 10:18 p.m. UTC | #1
29.01.2020 03:26, Wei Yang пишет:
> move_page_tables() tries to move page table by PMD or PTE.
> 
> The root reason is if it tries to move PMD, both old and new range should
> be PMD aligned. But current code calculate old range and new range
> separately.  This leads to some redundant check and calculation.
> 
> This cleanup tries to consolidate the range check in one place to reduce
> some extra range handling.
> 
> v2:
>   * remove 3rd patch which doesn't work on ARM platform. Thanks report from
>     Dmitry Osipenko
> 
> Wei Yang (4):
>   mm/mremap: format the check in move_normal_pmd() same as
>     move_huge_pmd()
>   mm/mremap: it is sure to have enough space when extent meets
>     requirement
>   mm/mremap: calculate extent in one place
>   mm/mremap: start addresses are properly aligned
> 
>  include/linux/huge_mm.h |  2 +-
>  mm/huge_memory.c        |  8 +-------
>  mm/mremap.c             | 17 ++++++-----------
>  3 files changed, 8 insertions(+), 19 deletions(-)
> 

Hello Wei,

I haven't noticed any problems using the v2. Thank you very much for
addressing the problem!

Tested-by: Dmitry Osipenko <digetx@gmail.com>
Wei Yang Jan. 30, 2020, 11:05 p.m. UTC | #2
On Fri, Jan 31, 2020 at 01:18:00AM +0300, Dmitry Osipenko wrote:
>29.01.2020 03:26, Wei Yang пишет:
>> move_page_tables() tries to move page table by PMD or PTE.
>> 
>> The root reason is if it tries to move PMD, both old and new range should
>> be PMD aligned. But current code calculate old range and new range
>> separately.  This leads to some redundant check and calculation.
>> 
>> This cleanup tries to consolidate the range check in one place to reduce
>> some extra range handling.
>> 
>> v2:
>>   * remove 3rd patch which doesn't work on ARM platform. Thanks report from
>>     Dmitry Osipenko
>> 
>> Wei Yang (4):
>>   mm/mremap: format the check in move_normal_pmd() same as
>>     move_huge_pmd()
>>   mm/mremap: it is sure to have enough space when extent meets
>>     requirement
>>   mm/mremap: calculate extent in one place
>>   mm/mremap: start addresses are properly aligned
>> 
>>  include/linux/huge_mm.h |  2 +-
>>  mm/huge_memory.c        |  8 +-------
>>  mm/mremap.c             | 17 ++++++-----------
>>  3 files changed, 8 insertions(+), 19 deletions(-)
>> 
>
>Hello Wei,
>
>I haven't noticed any problems using the v2. Thank you very much for
>addressing the problem!
>

Glad to hear this.

Actually, really thanks for your patience on testing and reporting the
problem.

Have a nice day :-)

>Tested-by: Dmitry Osipenko <digetx@gmail.com>