• Raghavendra K T's avatar
    sched/numa: enhance vma scanning logic · fc137c0d
    Raghavendra K T authored
    During Numa scanning make sure only relevant vmas of the tasks are
    scanned.
    
    Before:
     All the tasks of a process participate in scanning the vma even if they
     do not access vma in it's lifespan.
    
    Now:
     Except cases of first few unconditional scans, if a process do
     not touch vma (exluding false positive cases of PID collisions)
     tasks no longer scan all vma
    
    Logic used:
    
    1) 6 bits of PID used to mark active bit in vma numab status during
       fault to remember PIDs accessing vma.  (Thanks Mel)
    
    2) Subsequently in scan path, vma scanning is skipped if current PID
       had not accessed vma.
    
    3) First two times we do allow unconditional scan to preserve earlier
       behaviour of scanning.
    
    Acknowledgement to Bharata B Rao <bharata@amd.com> for initial patch to
    store pid information and Peter Zijlstra <peterz@infradead.org> (Usage of
    test and set bit)
    
    Link: https://lkml.kernel.org/r/092f03105c7c1d3450f4636b1ea350407f07640e.1677672277.git.raghavendra.kt@amd.comSigned-off-by: default avatarRaghavendra K T <raghavendra.kt@amd.com>
    Suggested-by: default avatarMel Gorman <mgorman@techsingularity.net>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Disha Talreja <dishaa.talreja@amd.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Mike Rapoport <rppt@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    fc137c0d
memory.c 161 KB