[Patch v4 0/4] mm/mremap: cleanup move_page_tables() a little

Wei Yang richard.weiyang at linux.alibaba.com
Thu Jul 9 21:14:10 EDT 2020


On Thu, Jul 09, 2020 at 10:38:58PM +0300, Dmitry Osipenko wrote:
>08.07.2020 12:50, 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.
>> 
>> v4:
>>   * remove a redundant parentheses pointed by Kirill
>> 
>> v3:
>>   * merge patch 1 with 2 as suggested by Kirill
>
>>   * add patch 4 to simplify the logic to calculate next and extent
>
>Hello, Wei!
>
>Unfortunately you re-introduced the offending change that was fixed in
>v2 and today's next-20200709 on ARM32 is broken once again:
>
>BUG: Bad rss-counter state mm:db85ec46 type:MM_ANONPAGES val:190
>

Ah, my bad, I forget the error we met last time. It is the different format of
pmd_addr_end.

Sorry for that.

@ Kirill

If you agree, I would leave the extent/next calculation as it is in patch 3.

>Please don't do it ;)
>
>> v2:
>>   * remove 3rd patch which doesn't work on ARM platform. Thanks report and
>>     test from Dmitry Osipenko
>> 
>> Wei Yang (4):
>>   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
>>   mm/mremap: use pmd_addr_end to simplify the calculate of extent
>> 
>>  include/linux/huge_mm.h |  2 +-
>>  mm/huge_memory.c        |  8 +-------
>>  mm/mremap.c             | 27 ++++++++++-----------------
>>  3 files changed, 12 insertions(+), 25 deletions(-)
>> 

-- 
Wei Yang
Help you, Help me



More information about the linux-arm-kernel mailing list