Unmapped pagecache pages can be demoted to low-tier memory, but they can only be promoted if a process maps the pages into the memory space (so that NUMA hint faults can be caught). This can cause significant performance degradation as the pagecache ages and unmapped, cached files are accessed. This patch series enables the pagecache to request a promotion of a folio when it is accessed via the pagecache. We add a new `numa_hint_page_cache` counter in vmstat to capture information on when these migrations occur. Gregory Price (3): migrate: Allow migrate_misplaced_folio APIs without a VMA memory: allow non-fault migration in numa_migrate_prep path swap: enable promotion for unmapped pagecache on access include/linux/migrate.h | 6 ++---- include/linux/vm_event_item.h | 1 + mm/huge_memory.c | 2 +- mm/memory.c | 21 +++++++++++---------- mm/mempolicy.c | 25 +++++++++++++++++-------- mm/migrate.c | 7 +++---- mm/swap.c | 20 ++++++++++++++++++++ mm/vmstat.c | 1 + 8 files changed, 56 insertions(+), 27 deletions(-) -- 2.43.0