• Mel Gorman's avatar
    mm: numa: Do not batch handle PMD pages · 0f19c179
    Mel Gorman authored
    With the THP migration races closed it is still possible to occasionally
    see corruption. The problem is related to handling PMD pages in batch.
    When a page fault is handled it can be assumed that the page being
    faulted will also be flushed from the TLB. The same flushing does not
    happen when handling PMD pages in batch. Fixing is straight forward but
    there are a number of reasons not to
    
    1. Multiple TLB flushes may have to be sent depending on what pages get
       migrated
    2. The handling of PMDs in batch means that faults get accounted to
       the task that is handling the fault. While care is taken to only
       mark PMDs where the last CPU and PID match it can still have problems
       due to PID truncation when matching PIDs.
    3. Batching on the PMD level may reduce faults but setting pmd_numa
       requires taking a heavy lock that can contend with THP migration
       and handling the fault requires the release/acquisition of the PTL
       for every page migrated. It's still pretty heavy.
    
    PMD batch handling is not something that people ever have been happy
    with. This patch removes it and later patches will deal with the
    additional fault overhead using more installigent migrate rate adaption.
    Signed-off-by: default avatarMel Gorman <mgorman@suse.de>
    Reviewed-by: default avatarRik van Riel <riel@redhat.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1381141781-10992-48-git-send-email-mgorman@suse.deSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    0f19c179
mprotect.c 9.18 KB