lkml.org 
[lkml]   [2019]   [Jul]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 218/293] nfsd: give out fewer session slots as limit approaches
    Date
    [ Upstream commit de766e570413bd0484af0b580299b495ada625c3 ]

    Instead of granting client's full requests until we hit our DRC size
    limit and then failing CREATE_SESSIONs (and hence mounts) completely,
    start granting clients smaller slot tables as we approach the limit.

    The factor chosen here is pretty much arbitrary.

    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/nfsd/nfs4state.c | 5 +++++
    1 file changed, 5 insertions(+)

    diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
    index 94128643ec1a..dd48353357d7 100644
    --- a/fs/nfsd/nfs4state.c
    +++ b/fs/nfsd/nfs4state.c
    @@ -1507,6 +1507,11 @@ static u32 nfsd4_get_drc_mem(struct nfsd4_channel_attrs *ca)
    spin_lock(&nfsd_drc_lock);
    avail = min((unsigned long)NFSD_MAX_MEM_PER_SESSION,
    nfsd_drc_max_mem - nfsd_drc_mem_used);
    + /*
    + * Never use more than a third of the remaining memory,
    + * unless it's the only way to give this client a slot:
    + */
    + avail = clamp_t(int, avail, slotsize, avail/3);
    num = min_t(int, num, avail / slotsize);
    nfsd_drc_mem_used += num * slotsize;
    spin_unlock(&nfsd_drc_lock);
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-07-29 22:09    [W:2.374 / U:0.504 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site