mbox series

[v3,00/10] Make nfsd stats visible in network ns

Message ID cover.1706283433.git.josef@toxicpanda.com (mailing list archive)
Headers show
Series Make nfsd stats visible in network ns | expand

Message

Josef Bacik Jan. 26, 2024, 3:39 p.m. UTC
v1: https://lore.kernel.org/linux-nfs/cover.1706124811.git.josef@toxicpanda.com/
v2: https://lore.kernel.org/linux-nfs/cover.1706212207.git.josef@toxicpanda.com/

NOTE: there's still one nfs change in here and it's where I dropped pg_stats, I
assume that's ok for this series, but I can break it out and then follow up with
a removal later if necessary.

v2->v3:
- Split out the nfs and nfsd related changes into their own patches.
- Dropped the change adding sv_stats throuch svc_create()
- Changed the th_cnt to be global, re-arranged it's location.

v1->v2:
- rework the sunprc service creation to take a pointer to the sv_stats.
- dropped ->pg_stats from the svc_program.
- converted all of the nfsd global stats to per-network namespace.
- added the ability to point at a specific rpc_stat for rpc program creation.
- converted the rpc stats for nfs to per-network namespace.

Josef Bacik (10):
  sunrpc: don't change ->sv_stats if it doesn't exist
  nfs: stop setting ->pg_stats for unused stats
  sunrpc: pass in the sv_stats struct through svc_create_pooled
  sunrpc: remove ->pg_stats from svc_program
  sunrpc: use the struct net as the svc proc private
  nfsd: rename NFSD_NET_* to NFSD_STATS_*
  nfsd: expose /proc/net/sunrpc/nfsd in net namespaces
  nfsd: make all of the nfsd stats per-network namespace
  nfsd: remove nfsd_stats, make th_cnt a global counter
  nfsd: make svc_stat per-network namespace instead of global

 fs/lockd/svc.c             |  3 --
 fs/nfs/callback.c          |  3 --
 fs/nfsd/cache.h            |  2 --
 fs/nfsd/netns.h            | 25 +++++++++++---
 fs/nfsd/nfs4proc.c         |  6 ++--
 fs/nfsd/nfs4state.c        |  3 +-
 fs/nfsd/nfscache.c         | 40 +++++-----------------
 fs/nfsd/nfsctl.c           | 16 ++++-----
 fs/nfsd/nfsd.h             |  1 +
 fs/nfsd/nfsfh.c            |  3 +-
 fs/nfsd/nfssvc.c           | 14 +++-----
 fs/nfsd/stats.c            | 52 ++++++++++++----------------
 fs/nfsd/stats.h            | 70 +++++++++++++-------------------------
 fs/nfsd/vfs.c              |  5 +--
 include/linux/sunrpc/svc.h |  5 ++-
 net/sunrpc/stats.c         |  2 +-
 net/sunrpc/svc.c           | 39 +++++++++++++--------
 17 files changed, 126 insertions(+), 163 deletions(-)

Comments

Chuck Lever Jan. 26, 2024, 4:09 p.m. UTC | #1
> On Jan 26, 2024, at 10:39 AM, Josef Bacik <josef@toxicpanda.com> wrote:
> 
> v1: https://lore.kernel.org/linux-nfs/cover.1706124811.git.josef@toxicpanda.com/
> v2: https://lore.kernel.org/linux-nfs/cover.1706212207.git.josef@toxicpanda.com/
> 
> NOTE: there's still one nfs change in here and it's where I dropped pg_stats, I
> assume that's ok for this series, but I can break it out and then follow up with
> a removal later if necessary.

If that's for the NFSv4 callback service, I think that's
OK for me to take through the NFSD tree. An Ack from the
client maintainers would be lovely, but is not required.

If Jeff agrees, I'd like to take v3 for v6.9, and then
Jeff (or I) can follow up with a patch fixing the thread
count stat. Jeff?


> v2->v3:
> - Split out the nfs and nfsd related changes into their own patches.
> - Dropped the change adding sv_stats throuch svc_create()
> - Changed the th_cnt to be global, re-arranged it's location.
> 
> v1->v2:
> - rework the sunprc service creation to take a pointer to the sv_stats.
> - dropped ->pg_stats from the svc_program.
> - converted all of the nfsd global stats to per-network namespace.
> - added the ability to point at a specific rpc_stat for rpc program creation.
> - converted the rpc stats for nfs to per-network namespace.
> 
> Josef Bacik (10):
>  sunrpc: don't change ->sv_stats if it doesn't exist
>  nfs: stop setting ->pg_stats for unused stats
>  sunrpc: pass in the sv_stats struct through svc_create_pooled
>  sunrpc: remove ->pg_stats from svc_program
>  sunrpc: use the struct net as the svc proc private
>  nfsd: rename NFSD_NET_* to NFSD_STATS_*
>  nfsd: expose /proc/net/sunrpc/nfsd in net namespaces
>  nfsd: make all of the nfsd stats per-network namespace
>  nfsd: remove nfsd_stats, make th_cnt a global counter
>  nfsd: make svc_stat per-network namespace instead of global
> 
> fs/lockd/svc.c             |  3 --
> fs/nfs/callback.c          |  3 --
> fs/nfsd/cache.h            |  2 --
> fs/nfsd/netns.h            | 25 +++++++++++---
> fs/nfsd/nfs4proc.c         |  6 ++--
> fs/nfsd/nfs4state.c        |  3 +-
> fs/nfsd/nfscache.c         | 40 +++++-----------------
> fs/nfsd/nfsctl.c           | 16 ++++-----
> fs/nfsd/nfsd.h             |  1 +
> fs/nfsd/nfsfh.c            |  3 +-
> fs/nfsd/nfssvc.c           | 14 +++-----
> fs/nfsd/stats.c            | 52 ++++++++++++----------------
> fs/nfsd/stats.h            | 70 +++++++++++++-------------------------
> fs/nfsd/vfs.c              |  5 +--
> include/linux/sunrpc/svc.h |  5 ++-
> net/sunrpc/stats.c         |  2 +-
> net/sunrpc/svc.c           | 39 +++++++++++++--------
> 17 files changed, 126 insertions(+), 163 deletions(-)
> 
> -- 
> 2.43.0
> 

--
Chuck Lever
Jeff Layton Jan. 26, 2024, 5:35 p.m. UTC | #2
On Fri, 2024-01-26 at 16:09 +0000, Chuck Lever III wrote:
> 
> > On Jan 26, 2024, at 10:39 AM, Josef Bacik <josef@toxicpanda.com> wrote:
> > 
> > v1: https://lore.kernel.org/linux-nfs/cover.1706124811.git.josef@toxicpanda.com/
> > v2: https://lore.kernel.org/linux-nfs/cover.1706212207.git.josef@toxicpanda.com/
> > 
> > NOTE: there's still one nfs change in here and it's where I dropped pg_stats, I
> > assume that's ok for this series, but I can break it out and then follow up with
> > a removal later if necessary.
> 
> If that's for the NFSv4 callback service, I think that's
> OK for me to take through the NFSD tree. An Ack from the
> client maintainers would be lovely, but is not required.
> 
> If Jeff agrees, I'd like to take v3 for v6.9, and then
> Jeff (or I) can follow up with a patch fixing the thread
> count stat. Jeff?
> 
> 

Yep. This looks great for v6.9. You can add:

Reviewed-by: Jeff Layton <jlayton@kernel.org>

> > v2->v3:
> > - Split out the nfs and nfsd related changes into their own patches.
> > - Dropped the change adding sv_stats throuch svc_create()
> > - Changed the th_cnt to be global, re-arranged it's location.
> > 
> > v1->v2:
> > - rework the sunprc service creation to take a pointer to the sv_stats.
> > - dropped ->pg_stats from the svc_program.
> > - converted all of the nfsd global stats to per-network namespace.
> > - added the ability to point at a specific rpc_stat for rpc program creation.
> > - converted the rpc stats for nfs to per-network namespace.
> > 
> > Josef Bacik (10):
> >  sunrpc: don't change ->sv_stats if it doesn't exist
> >  nfs: stop setting ->pg_stats for unused stats
> >  sunrpc: pass in the sv_stats struct through svc_create_pooled
> >  sunrpc: remove ->pg_stats from svc_program
> >  sunrpc: use the struct net as the svc proc private
> >  nfsd: rename NFSD_NET_* to NFSD_STATS_*
> >  nfsd: expose /proc/net/sunrpc/nfsd in net namespaces
> >  nfsd: make all of the nfsd stats per-network namespace
> >  nfsd: remove nfsd_stats, make th_cnt a global counter
> >  nfsd: make svc_stat per-network namespace instead of global
> > 
> > fs/lockd/svc.c             |  3 --
> > fs/nfs/callback.c          |  3 --
> > fs/nfsd/cache.h            |  2 --
> > fs/nfsd/netns.h            | 25 +++++++++++---
> > fs/nfsd/nfs4proc.c         |  6 ++--
> > fs/nfsd/nfs4state.c        |  3 +-
> > fs/nfsd/nfscache.c         | 40 +++++-----------------
> > fs/nfsd/nfsctl.c           | 16 ++++-----
> > fs/nfsd/nfsd.h             |  1 +
> > fs/nfsd/nfsfh.c            |  3 +-
> > fs/nfsd/nfssvc.c           | 14 +++-----
> > fs/nfsd/stats.c            | 52 ++++++++++++----------------
> > fs/nfsd/stats.h            | 70 +++++++++++++-------------------------
> > fs/nfsd/vfs.c              |  5 +--
> > include/linux/sunrpc/svc.h |  5 ++-
> > net/sunrpc/stats.c         |  2 +-
> > net/sunrpc/svc.c           | 39 +++++++++++++--------
> > 17 files changed, 126 insertions(+), 163 deletions(-)
> > 
> > -- 
> > 2.43.0
> > 
> 
> --
> Chuck Lever
> 
>