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