[RFC PATCH 0/3] Re: [PATCH v17 14/21] mm/compaction: do page isolation first in compaction

Alexander Duyck
2020-08-13T04:02:25Z

Here are the patches I had discussed earlier to address the issues in
isolate_migratepages_block.

They are based on the tree at:
https://github.com/alexshi/linux.git lrunext

The first patch is mostly cleanup to address the RCU locking in the
function. The second addresses the test_and_set_skip issue, and the third
relocates PageCompound.

I did some digging into the history of the skip bits and since they are
only supposed to be a hint I thought we could probably just drop the
testing portion of the call since the LRU flag is preventing more than one
thread from accessing the function anyway so it would make sense to just
switch it to a set operation similar to what happens when low_pfn ==
end_pfn at the end of the call.

I have only had a chance to build test these since rebasing on the tree. In
addition I am not 100% certain the PageCompound changes are correct as they
operate on the assumption that get_page_unless_zero is enough to keep a
compound page from being split up. I plan on doing some testing tomorrow,
but thought I would push these out now so that we could discuss them.

---

Alexander Duyck (3):
mm: Drop locked from isolate_migratepages_block
mm: Drop use of test_and_set_skip in favor of just setting skip
mm: Identify compound pages sooner in isolate_migratepages_block

mm/compaction.c | 126 +++++++++++++++++++------------------------------------
1 file changed, 44 insertions(+), 82 deletions(-)

--