• Yu Zhao's avatar
    mm: multi-gen LRU: remove eviction fairness safeguard · a579086c
    Yu Zhao authored
    Recall that the eviction consumes the oldest generation: first it
    bucket-sorts folios whose gen counters were updated by the aging and
    reclaims the rest; then it increments lrugen->min_seq.
    
    The current eviction fairness safeguard for global reclaim has a
    dilemma: when there are multiple eligible memcgs, should it continue
    or stop upon meeting the reclaim goal? If it continues, it overshoots
    and increases direct reclaim latency; if it stops, it loses fairness
    between memcgs it has taken memory away from and those it has yet to.
    
    With memcg LRU, the eviction, while ensuring eventual fairness, will
    stop upon meeting its goal. Therefore the current eviction fairness
    safeguard for global reclaim will not be needed.
    
    Note that memcg LRU only applies to global reclaim. For memcg reclaim,
    the eviction will continue, even if it is overshooting. This becomes
    unconditional due to code simplification.
    
    Link: https://lkml.kernel.org/r/20221222041905.2431096-4-yuzhao@google.comSigned-off-by: default avatarYu Zhao <yuzhao@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Michael Larabel <Michael@MichaelLarabel.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Mike Rapoport <rppt@kernel.org>
    Cc: Roman Gushchin <roman.gushchin@linux.dev>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    a579086c
vmscan.c 213 KB