> On Sat, 2024-01-20 at 18:33 +0100, Lorenzo Bianconi wrote: > > Introduce write_threads, write_version and write_ports netlink > > commands similar to the ones available through the procfs. > > > > Changes since v5: > > - for write_ports and write_version commands, userspace is expected to provide > > a NFS listeners/supported versions list it want to enable (all the other > > ports/versions will be disabled). > > - fix comments > > - rebase on top of nfsd-next > > Changes since v4: > > - rebase on top of nfsd-next tree > > Changes since v3: > > - drop write_maxconn and write_maxblksize for the moment > > - add write_version and write_ports commands > > Changes since v2: > > - use u32 to store nthreads in nfsd_nl_threads_set_doit > > - rename server-attr in control-plane in nfsd.yaml specs > > Changes since v1: > > - remove write_v4_end_grace command > > - add write_maxblksize and write_maxconn netlink commands > > > > This patch can be tested with user-space tool reported below: > > https://github.com/LorenzoBianconi/nfsd-netlink.git > > > > Lorenzo Bianconi (3): > > NFSD: convert write_threads to netlink command > > NFSD: add write_version to netlink command > > NFSD: add write_ports to netlink command > > > > Documentation/netlink/specs/nfsd.yaml | 94 ++++++ > > fs/nfsd/netlink.c | 63 ++++ > > fs/nfsd/netlink.h | 10 + > > fs/nfsd/nfsctl.c | 396 ++++++++++++++++++++++ > > include/uapi/linux/nfsd_netlink.h | 44 +++ > > tools/net/ynl/generated/nfsd-user.c | 460 ++++++++++++++++++++++++++ > > tools/net/ynl/generated/nfsd-user.h | 155 +++++++++ > > 7 files changed, 1222 insertions(+) > > > > > I think this is really close and coming together! Before we merge this > though, I'd _really_ like to see some patches for rpc.nfsd in nfs-utils. > Until we try to implement the userland bits, we won't know if we've > gotten this interface right. > > ...and before that, we really need to have some sort of userland program > packaged and available for querying the new netlink RPC stats from nfsd. > You have the simple userland one on github, but I think we need omething > packaged, ideally as part of nfs-utils. Hi Jeff, I guess we can experiment on the new APIs very easily with ynl cli.py. Something like: $ ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/nfsd.yaml --dump rpc-status-get [{'compound-ops': [53, 22, 9], 'daddr4': 3232266828, 'dport': 2049, 'flags': 5, 'proc': 1, 'prog': 100003, 'saddr4': 3232266753, 'service_time': 81705129, 'sport': 908, 'version': 4, 'xid': 0}, {'compound-ops': [53, 22, 9], 'daddr4': 3232266828, 'dport': 2049, 'flags': 5, 'proc': 1, 'prog': 100003, 'saddr4': 3232266753, 'service_time': 81700496, 'sport': 908, 'version': 4, 'xid': 0}] or ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/nfsd.yaml --do threads-get {'threads': 8} (the only required package is jsonschema iirc). Regards, Lorenzo > > Doing that first would allow you to add the necessary autoconf/libtool > stuff to pull in the netlink libraries, which will be a prerequisite for > doing the userland rpc.nfsd work, and will probably be a bit simpler > than modifying rpc.nfsd. > -- > Jeff Layton <jlayton@xxxxxxxxxx>
Attachment:
signature.asc
Description: PGP signature