[UNTESTED RFC PATCH 0/8] compaction scanners rework

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have been working on this in the past weeks, but probably won't have time to
finish and test properly this year. So here's an UNTESTED RFC for those brave
enough to test, and also for review comments. I've been focusing on 1-7, and
patch 8 is unchanged since the last posting,  so Mel's suggestions (wrt
fallbacks and scanning pageblock where we get the free page from) from are not
included yet.

For context, please see the recent threads [1] [2]. The main goal is to
eliminate the reported huge free scanner activity by replacing the scanner with
allocation from free lists. This has some dangers of excessive migrations as
described in Patch 8 commit log, so the earlier patches try to eliminate most
of them by making the migration scanner decide to actually migrate pages only
if it looks like it can succeed. This should be benefical even in the current
scheme.

[1] https://lkml.kernel.org/r/20171122143321.29501-1-hannes@xxxxxxxxxxx
[2] https://lkml.kernel.org/r/0168732b-d53f-a1b8-6623-4e4e26b85c5d@xxxxxxx

Vlastimil Babka (8):
  mm, compaction: don't mark pageblocks unsuitable when not fully
    scanned
  mm, compaction: skip_on_failure only for MIGRATE_MOVABLE allocations
  mm, compaction: pass valid_page to isolate_migratepages_block
  mm, compaction: skip on isolation failure also in sync compaction
  mm, compaction: factor out checking if page can be isolated for
    migration
  mm, compaction: prescan before isolating in skip_on_failure mode
  mm, compaction: prescan all MIGRATE_MOVABLE pageblocks
  mm, compaction: replace free scanner with direct freelist allocation

 include/linux/vm_event_item.h |   2 +
 mm/compaction.c               | 311 ++++++++++++++++++++++++++++++++----------
 mm/internal.h                 |   3 +
 mm/page_alloc.c               |  71 ++++++++++
 mm/vmstat.c                   |   3 +
 5 files changed, 316 insertions(+), 74 deletions(-)

-- 
2.15.1

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]
  Powered by Linux