On Tue, 2022-08-30 at 14:48 -0700, Dai Ngo wrote: > This patch series implements the memory shrinker for NFSv4 clients > to react to system low memory condition. > > The memory shrinker's count callback is used to trigger the laundromat. > The actual work of destroying the expired clients is done by the > laundromat itself. We can not destroying the expired clients on the > memory shrinler's scan callback context to avoid possible deadlock. > > By destroying the expired clients, all states associated with these > clients are also released. > > v2: > . fix kernel test robot errors in nfsd.h when CONFIG_NFSD_V4 not defined. > > v3: > . add mod_delayed_work in nfsd_courtesy_client_scan to kick start > the laundromat. > > v4: > . replace the use of xchg() with vanilla '=' in patch 1. > > --- > > Dai Ngo (2): > NFSD: keep track of the number of courtesy clients in the system > NFSD: add shrinker to reap courtesy clients on low memory condition > > fs/nfsd/netns.h | 5 ++++ > fs/nfsd/nfs4state.c | 65 ++++++++++++++++++++++++++++++++++++++++++++---- > fs/nfsd/nfsctl.c | 6 +++-- > fs/nfsd/nfsd.h | 9 +++++-- > 4 files changed, 76 insertions(+), 9 deletions(-) Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>