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

From: Wei Yang
Date: Wed Jul 08 2020 - 05:50:49 EST


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

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(-)

--
2.20.1 (Apple Git-117)