mbox series

[v3,0/6] do not collapse trunkable transports

Message ID 20210616011013.50547-1-olga.kornievskaia@gmail.com (mailing list archive)
Headers show
Series do not collapse trunkable transports | expand

Message

Olga Kornievskaia June 16, 2021, 1:10 a.m. UTC
From: Olga Kornievskaia <kolga@netapp.com>

This patch series attempts to allow for new mounts that are to the
same server (ie nfsv4.1+ session trunkable servers) but different
network addresses to use connections associated with those mounts
but still use the same client structure.

A new mount options, "max_connect", controls how many extra transports
can be added to an existing client, with maximum of 16 such transports.

v3:
-- add a new counter to xprt_switch to keep track of transports with
unique addresses
-- control of enforcing the limit is moved into the sunrpc layer
into the function rpc_clnt_test_and_add_xprt
-- after a trunking transport is created if mount request asked for
nconnect connections, create as many as the original/first mount had

Olga Kornievskaia (6):
  SUNRPC keep track of number of transports to unique addresses
  SUNRPC add xps_nunique_destaddr_xprts to xprt_switch_info in sysfs
  NFSv4 introduce max_connect mount options
  SUNRPC enforce creation of no more than max_connect xprts
  NFSv4 add network transport when session trunking is detected
  NFSv4 allow for nconnect value of trunkable transport

 fs/nfs/client.c                      |  2 ++
 fs/nfs/fs_context.c                  |  7 ++++
 fs/nfs/internal.h                    |  2 ++
 fs/nfs/nfs4client.c                  | 50 ++++++++++++++++++++++++++--
 fs/nfs/super.c                       |  2 ++
 include/linux/nfs_fs.h               |  5 +++
 include/linux/nfs_fs_sb.h            |  1 +
 include/linux/sunrpc/clnt.h          |  2 ++
 include/linux/sunrpc/xprtmultipath.h |  1 +
 net/sunrpc/clnt.c                    | 11 +++++-
 net/sunrpc/sysfs.c                   |  4 ++-
 net/sunrpc/xprtmultipath.c           |  1 +
 12 files changed, 84 insertions(+), 4 deletions(-)

Comments

Olga Kornievskaia July 9, 2021, 2:24 p.m. UTC | #1
On Tue, Jun 15, 2021 at 9:10 PM Olga Kornievskaia
<olga.kornievskaia@gmail.com> wrote:
>
> From: Olga Kornievskaia <kolga@netapp.com>
>
> This patch series attempts to allow for new mounts that are to the
> same server (ie nfsv4.1+ session trunkable servers) but different
> network addresses to use connections associated with those mounts
> but still use the same client structure.
>
> A new mount options, "max_connect", controls how many extra transports
> can be added to an existing client, with maximum of 16 such transports.
>
> v3:
> -- add a new counter to xprt_switch to keep track of transports with
> unique addresses
> -- control of enforcing the limit is moved into the sunrpc layer
> into the function rpc_clnt_test_and_add_xprt
> -- after a trunking transport is created if mount request asked for
> nconnect connections, create as many as the original/first mount had

Any comments on/objections to this version?

>
> Olga Kornievskaia (6):
>   SUNRPC keep track of number of transports to unique addresses
>   SUNRPC add xps_nunique_destaddr_xprts to xprt_switch_info in sysfs
>   NFSv4 introduce max_connect mount options
>   SUNRPC enforce creation of no more than max_connect xprts
>   NFSv4 add network transport when session trunking is detected
>   NFSv4 allow for nconnect value of trunkable transport
>
>  fs/nfs/client.c                      |  2 ++
>  fs/nfs/fs_context.c                  |  7 ++++
>  fs/nfs/internal.h                    |  2 ++
>  fs/nfs/nfs4client.c                  | 50 ++++++++++++++++++++++++++--
>  fs/nfs/super.c                       |  2 ++
>  include/linux/nfs_fs.h               |  5 +++
>  include/linux/nfs_fs_sb.h            |  1 +
>  include/linux/sunrpc/clnt.h          |  2 ++
>  include/linux/sunrpc/xprtmultipath.h |  1 +
>  net/sunrpc/clnt.c                    | 11 +++++-
>  net/sunrpc/sysfs.c                   |  4 ++-
>  net/sunrpc/xprtmultipath.c           |  1 +
>  12 files changed, 84 insertions(+), 4 deletions(-)
>
> --
> 2.27.0
>