mbox series

[v2,0/8] allow for offlining/removing xprt via sysfs

Message ID 20210624032853.4776-1-olga.kornievskaia@gmail.com (mailing list archive)
Headers show
Series allow for offlining/removing xprt via sysfs | expand

Message

Olga Kornievskaia June 24, 2021, 3:28 a.m. UTC
From: Olga Kornievskaia <kolga@netapp.com>

In this patch series, I propose to add ability to offline a transport
so that it's no longer available for tasks with ability to either
bring it back online (if this transport recovers) or it can be removed
all together. When a transport is begin removed, all the moveable tasks
that have been assigned to this transport but didn't complete will be
retried on a different transport. Note, that if a transport has stuck,
un-moveable tasks, it can't be removed.

in v2 of this patch series:
-- able to online an offlined transport
-- for the getattr, to mark it moveable, use presense of session instead
of the minorversion
-- added things to the xprt_info displayed via sysfs: (1) whether or not
this is a main transport, in hopes to prevent to offline/remove a main
transport. (2) display source port of the TCP transport, as it makes it
easier to make transports to the network trace. (2) display xprt's
queuelen which keeps track of tasks that have been assigned to this
xprt.

Olga Kornievskaia (8):
  SUNRPC mark the first transport
  SUNRPC display xprt's main value in sysfs's xprt_info
  SUNRPC query transport's source port
  SUNRPC for TCP display xprt's source port in sysfs xprt_info
  SUNRPC: take a xprt offline using sysfs
  NFSv4.1 identify and mark RPC tasks that can move between transports
  sunrpc: display xprt's queuelen of assigned tasks via sysfs
  sunrpc: remove an offlined xprt using sysfs

 fs/nfs/nfs4proc.c               | 38 +++++++++++--
 fs/nfs/pagelist.c               |  8 ++-
 fs/nfs/write.c                  |  6 +-
 include/linux/sunrpc/sched.h    |  2 +
 include/linux/sunrpc/xprt.h     |  3 +
 include/linux/sunrpc/xprtsock.h |  1 +
 net/sunrpc/clnt.c               | 25 +++++++++
 net/sunrpc/sysfs.c              | 98 ++++++++++++++++++++++++++++++---
 net/sunrpc/sysfs.h              |  1 +
 net/sunrpc/xprtmultipath.c      |  6 +-
 net/sunrpc/xprtsock.c           |  7 +++
 11 files changed, 177 insertions(+), 18 deletions(-)