[PATCH 00/14] Refactor SUNRPC svc thread code, and use llist

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux