linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/14] Refactor SUNRPC svc thread code, and use llist
@ 2023-07-18  6:38 NeilBrown
  2023-07-18  6:38 ` [PATCH 05/14] SUNRPC: remove timeout arg from svc_recv() NeilBrown
                   ` (14 more replies)
  0 siblings, 15 replies; 43+ messages in thread
From: NeilBrown @ 2023-07-18  6:38 UTC (permalink / raw)
  To: Chuck Lever, Jeff Layton; +Cc: linux-nfs

This code .... grew a bit since my previous pencil-sketch code.

The goal is really the final patch: using a llist without spinlocks to
handle dispatch of idle threads.  To get there I found it necessary - or
at least helpful - to do a lot of refactoring.

This code passes some basic tests, but I haven't push it hard yet.

Even if other aren't convinced that llists are the best solution, I
think a lot of the refactoring is this valuable.

Comments welcome,
Thanks,
NeilBrown

---

NeilBr own (14):
      lockd: remove SIGKILL handling.
      nfsd: don't allow nfsd threads to be signalled.
      SUNRPC: call svc_process() from svc_recv().
      SUNRPC: change svc_recv() to return void.
      SUNRPC: remove timeout arg from svc_recv()
      SUNRPC: change various server-side #defines to enum
      SUNRPC: refactor svc_recv()
      SUNRPC: integrate back-channel processing with svc_recv() and svc_process()
      SUNRPC: change how svc threads are asked to exit.
      SUNRPC: change svc_pool_wake_idle_thread() to return nothing.
      SUNRPC: add list of idle threads
      SUNRPC: discard SP_CONGESTED
      SUNRPC: change service idle list to be an llist
      SUNRPC: only have one thread waking up at a time


 fs/lockd/svc.c                    |  49 ++-----
 fs/lockd/svclock.c                |   9 +-
 fs/nfs/callback.c                 |  59 +-------
 fs/nfsd/nfs4proc.c                |  10 +-
 fs/nfsd/nfssvc.c                  |  22 +--
 include/linux/llist.h             |   2 +
 include/linux/lockd/lockd.h       |   4 +-
 include/linux/sunrpc/cache.h      |  11 +-
 include/linux/sunrpc/svc.h        |  87 +++++++++---
 include/linux/sunrpc/svc_xprt.h   |  39 +++---
 include/linux/sunrpc/svcauth.h    |  29 ++--
 include/linux/sunrpc/svcsock.h    |   2 +-
 include/linux/sunrpc/xprtsock.h   |  25 ++--
 include/trace/events/sunrpc.h     |   5 +-
 lib/llist.c                       |  27 ++++
 net/sunrpc/backchannel_rqst.c     |   8 +-
 net/sunrpc/svc.c                  |  71 ++++------
 net/sunrpc/svc_xprt.c             | 226 ++++++++++++++++--------------
 net/sunrpc/xprtrdma/backchannel.c |   2 +-
 19 files changed, 347 insertions(+), 340 deletions(-)

--
Signature


^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2023-07-30 23:19 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-18  6:38 [PATCH 00/14] Refactor SUNRPC svc thread code, and use llist NeilBrown
2023-07-18  6:38 ` [PATCH 05/14] SUNRPC: remove timeout arg from svc_recv() NeilBrown
2023-07-20 20:12   ` Jeff Layton
2023-07-18  6:38 ` [PATCH 13/14] SUNRPC: change service idle list to be an llist NeilBrown
2023-07-18  6:38 ` [PATCH 06/14] SUNRPC: change various server-side #defines to enum NeilBrown
2023-07-18 13:37   ` Chuck Lever
2023-07-30 15:57     ` Chuck Lever
2023-07-30 22:11       ` NeilBrown
2023-07-30 22:14         ` NeilBrown
2023-07-30 22:16           ` Chuck Lever III
2023-07-30 22:56       ` NeilBrown
2023-07-30 22:57         ` Chuck Lever III
2023-07-30 23:19       ` Chuck Lever III
2023-07-18  6:38 ` [PATCH 11/14] SUNRPC: add list of idle threads NeilBrown
2023-07-18  6:38 ` [PATCH 07/14] SUNRPC: refactor svc_recv() NeilBrown
2023-07-18 13:49   ` Chuck Lever
2023-07-18  6:38 ` [PATCH 12/14] SUNRPC: discard SP_CONGESTED NeilBrown
2023-07-18  6:38 ` [PATCH 14/14] SUNRPC: only have one thread waking up at a time NeilBrown
2023-07-18  6:38 ` [PATCH 01/14] lockd: remove SIGKILL handling NeilBrown
2023-07-20 20:05   ` Jeff Layton
2023-07-18  6:38 ` [PATCH 08/14] SUNRPC: integrate back-channel processing with svc_recv() and svc_process() NeilBrown
2023-07-20 20:16   ` Jeff Layton
2023-07-18  6:38 ` [PATCH 03/14] SUNRPC: call svc_process() from svc_recv() NeilBrown
2023-07-20 20:07   ` Jeff Layton
2023-07-18  6:38 ` [PATCH 04/14] SUNRPC: change svc_recv() to return void NeilBrown
2023-07-18 13:26   ` Chuck Lever
2023-07-20 20:02   ` Jeff Layton
2023-07-18  6:38 ` [PATCH 10/14] SUNRPC: change svc_pool_wake_idle_thread() to return nothing NeilBrown
2023-07-18 13:58   ` Chuck Lever
2023-07-19  1:16     ` NeilBrown
2023-07-19 13:12       ` Chuck Lever III
2023-07-19 23:20         ` NeilBrown
2023-07-19 23:44           ` Chuck Lever III
2023-07-20 14:29             ` Chuck Lever III
2023-07-24  0:03               ` NeilBrown
2023-07-24  4:44               ` NeilBrown
2023-07-25 13:49                 ` Chuck Lever III
2023-07-18  6:38 ` [PATCH 02/14] nfsd: don't allow nfsd threads to be signalled NeilBrown
2023-07-20 20:05   ` Jeff Layton
2023-07-18  6:38 ` [PATCH 09/14] SUNRPC: change how svc threads are asked to exit NeilBrown
2023-07-20 20:30   ` Jeff Layton
2023-07-20 21:32     ` NeilBrown
2023-07-18 18:12 ` [PATCH 00/14] Refactor SUNRPC svc thread code, and use llist Chuck Lever III

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).