lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <5081c9a2-2a2a-469d-9df8-eef6be2d05ac@app.fastmail.com>
Date: Tue, 06 Jan 2026 16:26:43 -0500
From: "Chuck Lever" <cel@...nel.org>
To: "Jeff Layton" <jlayton@...nel.org>,
 "Chuck Lever" <chuck.lever@...cle.com>, NeilBrown <neil@...wn.name>,
 "Olga Kornievskaia" <okorniev@...hat.com>, "Dai Ngo" <Dai.Ngo@...cle.com>,
 "Tom Talpey" <tom@...pey.com>, "Trond Myklebust" <trondmy@...nel.org>,
 "Anna Schumaker" <anna@...nel.org>
Cc: linux-nfs@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 0/8] nfsd, sunrpc: allow for a dynamically-sized threadpool



On Tue, Jan 6, 2026, at 1:59 PM, Jeff Layton wrote:
> This version of the patchset fixes a number of warts in the first, and
> hopefully gets this closer to something mergeable.
>
> This patchset allows nfsd to dynamically size its threadpool as needed.
> The main user-visible change is the addition of new controls that allow
> the admin to set a minimum number of threads.
>
> When the minimum is set to a non-zero value, the traditional "threads"
> setting is interpreted as a maximum number of threads instead of a
> static count. The server will start the minimum number of threads, and
> then ramp up the thread count as needed. When the server is idle, it
> will gradually ramp down the thread count.
>
> This control scheme should allow us to sanely switch between kernels
> that do and do not support dynamic threading. In the case where dynamic
> threading is not supported, the user will just get the static maximum
> number of threads, just like they do today.
>
> So far this is only lightly tested, but it seems to work well. I
> still need to do some benchmarking to see whether this affects
> performance, so I'm posting this as an RFC for now.
>
> Does this approach look sane to everyone?
>
> Signed-off-by: Jeff Layton <jlayton@...nel.org>
> ---
> Changes in v2:
> - svc_recv() now takes a timeout parameter. This should mean that
>   non-dynamic RPC services are unaffected by these changes.
> - if min_threads is larger than the max, then clamp it to the max
> - simplify SP_TASK_STARTING usage. Have same task set and clear it.
> - rework thread starting logic (EBUSY handling)
> - reorder arguments to svc_set_num_threads() and svc_set_pool_threads()
> - break up larger patches
> - Link to v1: 
> https://lore.kernel.org/r/20251213-nfsd-dynathread-v1-0-de755e59cbc4@kernel.org
>
> ---
> Jeff Layton (8):
>       sunrpc: split svc_set_num_threads() into two functions
>       sunrpc: remove special handling of NULL pool from 
> svc_start/stop_kthreads()
>       sunrpc: track the max number of requested threads in a pool
>       sunrpc: introduce the concept of a minimum number of threads per 
> pool
>       sunrpc: split new thread creation into a separate function
>       sunrpc: allow svc_recv() to return -ETIMEDOUT and -EBUSY
>       nfsd: adjust number of running nfsd threads based on activity
>       nfsd: add controls to set the minimum number of threads per pool
>
>  Documentation/netlink/specs/nfsd.yaml |   5 +
>  fs/lockd/svc.c                        |   6 +-
>  fs/nfs/callback.c                     |  10 +-
>  fs/nfsd/netlink.c                     |   5 +-
>  fs/nfsd/netns.h                       |   6 +
>  fs/nfsd/nfsctl.c                      |  50 ++++++++
>  fs/nfsd/nfssvc.c                      |  63 +++++++---
>  fs/nfsd/trace.h                       |  54 +++++++++
>  include/linux/sunrpc/svc.h            |  13 ++-
>  include/linux/sunrpc/svcsock.h        |   2 +-
>  include/uapi/linux/nfsd_netlink.h     |   1 +
>  net/sunrpc/svc.c                      | 210 ++++++++++++++++++++--------------
>  net/sunrpc/svc_xprt.c                 |  44 +++++--
>  13 files changed, 349 insertions(+), 120 deletions(-)
> ---
> base-commit: 83f633515af9382e7201e205112e18b995a80f70
> change-id: 20251212-nfsd-dynathread-9f7a31172005
>
> Best regards,
> -- 
> Jeff Layton <jlayton@...nel.org>

I'm comfortable with this series. Let me know when you are
ready for me to apply it.


-- 
Chuck Lever

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ