• NeilBrown's avatar
    mm/vmscan.c: avoid throttling reclaim for loop-back nfsd threads · 399ba0b9
    NeilBrown authored
    When a loopback NFS mount is active and the backing device for the NFS
    mount becomes congested, that can impose throttling delays on the nfsd
    threads.
    
    These delays significantly reduce throughput and so the NFS mount remains
    congested.
    
    This results in a livelock and the reduced throughput persists.
    
    This livelock has been found in testing with the 'wait_iff_congested'
    call, and could possibly be caused by the 'congestion_wait' call.
    
    This livelock is similar to the deadlock which justified the introduction
    of PF_LESS_THROTTLE, and the same flag can be used to remove this
    livelock.
    
    To minimise the impact of the change, we still throttle nfsd when the
    filesystem it is writing to is congested, but not when some separate
    filesystem (e.g.  the NFS filesystem) is congested.
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    399ba0b9
vmscan.c 110 KB