Skip to content
  • Mel Gorman's avatar
    sched/numa: avoid trapping faults and attempting migration of file-backed dirty pages · 09a913a7
    Mel Gorman authored
    change_pte_range is called from task work context to mark PTEs for
    receiving NUMA faulting hints.  If the marked pages are dirty then
    migration may fail.  Some filesystems cannot migrate dirty pages without
    blocking so are skipped in MIGRATE_ASYNC mode which just wastes CPU.
    Even when they can, it can be a waste of cycles when the pages are
    shared forcing higher scan rates.  This patch avoids marking shared
    dirty pages for hinting faults but also will skip a migration if the
    page was dirtied after the scanner updated a clean page.
    
    This is most noticeable running the NASA Parallel Benchmark when backed
    by btrfs, the default root filesystem for some distributions, but also
    noticeable when using XFS.
    
    The following are results from a 4-socket machine running a 4.16-rc4
    kernel with some scheduler patches that are pending for the next merge
    window.
    
                            4.16.0-rc4             4.16.0-rc4
                     s...
    09a913a7