[PATCH 0/7] EXPERIMENTAL: soft connect semantics for rpcbind

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

 



These need further refinement, but I'm posting now to spark some
discussion.

To address manifold reports of svc_unregister() hanging (either at
shutdown or if rpcbind simply wasn't ever started), these patches add
a new per-request soft connect semantic, and update the kernel's
rpcbind client to use a connection-oriented transport for local
queries.  This should cause the kernel's local rpcbind queries to fail
immediately if rpcbind isn't reachable.

This can work with either TCP or connected UDP.  I used TCP here
merely as an example.

The final two patches have not been tested, but provide a taste of
other uses for the soft connect semantic.  One possible use is to
address Ian's NFSv4 mount hang problems by making rpc_ping() fail if
it cannot connect to the server.

We can also make use of this new feature to do proper "hangless" NFS
v2/v3 version and transport negotiation in the kernel, although
that is beyond the scope of the current patch set.

---

Chuck Lever (7):
      SUNRPC: Use soft connect semantics when performing RPC ping
      SUNRPC: Use soft connects for autobinding over TCP
      SUNRPC: Use TCP for local rpcbind upcalls
      SUNRPC: maintain a single transport for rpcbind upcalls
      SUNRPC: Clean up call_transmit_status()
      SUNRPC: Allow RPCs to fail quickly if the server is unreachable
      SUNRPC: Don't report a connect delay of 0 seconds


 include/linux/sunrpc/sched.h |    2 +
 net/sunrpc/clnt.c            |   45 ++++++++++++++++++++--------
 net/sunrpc/rpcb_clnt.c       |   68 ++++++++++++++++++++++++++++++++----------
 net/sunrpc/sunrpc_syms.c     |    5 +++
 net/sunrpc/xprtsock.c        |    9 +++---
 5 files changed, 96 insertions(+), 33 deletions(-)

-- 
Chuck Lever <chuck.lever@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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