From: Josef Bacik <josef@toxicpanda.com>
To: linux-nfs@vger.kernel.org, kernel-team@fb.com
Subject: [PATCH v2 00/13] Make nfs and nfsd stats visible in network ns
Date: Thu, 25 Jan 2024 14:53:10 -0500 [thread overview]
Message-ID: <cover.1706212207.git.josef@toxicpanda.com> (raw)
v1: https://lore.kernel.org/linux-nfs/cover.1706124811.git.josef@toxicpanda.com/
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.
-- Original email --
Hello,
We're currently deploying NFS internally and have run into some oddities with
our usage of containers. All of the services that mount and export NFS volumes
run inside of containers, specifically all the namespaces including network
namespaces. Our monitoring is done on a per-container basis, so we need access
to the nfs and nfsd stats that are under /proc/net/sunrpc. However these are
only tied to the init_net, which makes them invisible to containers in a
different network namespace.
Fix this so that these files are tied to the network namespace. This allows us
to avoid the hack of bind mounting the hosts /proc into the container in order
to do proper monitoring. Thanks,
Josef
Josef Bacik (13):
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*
sunrpc: remove ->pg_stats from svc_program
sunrpc: add a struct rpc_stats arg to rpc_create_args
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: move th_cnt into nfsd_net
nfsd: make svc_stat per-network namespace instead of global
nfs: expose /proc/net/sunrpc/nfs in net namespaces
nfs: make the rpc_stat per net namespace
fs/lockd/svc.c | 5 +--
fs/nfs/callback.c | 5 +--
fs/nfs/client.c | 5 ++-
fs/nfs/inode.c | 8 ++---
fs/nfs/internal.h | 2 --
fs/nfs/netns.h | 2 ++
fs/nfsd/cache.h | 2 --
fs/nfsd/netns.h | 28 ++++++++++++---
fs/nfsd/nfs4proc.c | 6 ++--
fs/nfsd/nfs4state.c | 3 +-
fs/nfsd/nfscache.c | 40 +++++----------------
fs/nfsd/nfsctl.c | 16 ++++-----
fs/nfsd/nfsfh.c | 3 +-
fs/nfsd/nfssvc.c | 13 +++----
fs/nfsd/stats.c | 53 ++++++++++++----------------
fs/nfsd/stats.h | 70 +++++++++++++------------------------
fs/nfsd/vfs.c | 5 +--
include/linux/sunrpc/clnt.h | 1 +
include/linux/sunrpc/svc.h | 9 +++--
net/sunrpc/clnt.c | 2 +-
net/sunrpc/stats.c | 2 +-
net/sunrpc/svc.c | 44 ++++++++++++++---------
22 files changed, 147 insertions(+), 177 deletions(-)
--
2.43.0
next reply other threads:[~2024-01-25 19:53 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-25 19:53 Josef Bacik [this message]
2024-01-25 19:53 ` [PATCH v2 01/13] sunrpc: don't change ->sv_stats if it doesn't exist Josef Bacik
2024-01-25 19:53 ` [PATCH v2 02/13] nfs: stop setting ->pg_stats for unused stats Josef Bacik
2024-01-25 19:53 ` [PATCH v2 03/13] sunrpc: pass in the sv_stats struct through svc_create* Josef Bacik
2024-01-25 20:56 ` Chuck Lever
2024-01-25 21:56 ` Josef Bacik
2024-01-25 19:53 ` [PATCH v2 04/13] sunrpc: remove ->pg_stats from svc_program Josef Bacik
2024-01-25 19:53 ` [PATCH v2 05/13] sunrpc: add a struct rpc_stats arg to rpc_create_args Josef Bacik
2024-01-25 20:53 ` Chuck Lever
2024-01-25 21:54 ` Josef Bacik
2024-01-25 22:30 ` Jeff Layton
2024-01-26 13:49 ` Chuck Lever III
2024-01-25 19:53 ` [PATCH v2 06/13] sunrpc: use the struct net as the svc proc private Josef Bacik
2024-01-25 19:53 ` [PATCH v2 07/13] nfsd: rename NFSD_NET_* to NFSD_STATS_* Josef Bacik
2024-01-25 19:53 ` [PATCH v2 08/13] nfsd: expose /proc/net/sunrpc/nfsd in net namespaces Josef Bacik
2024-01-25 19:53 ` [PATCH v2 09/13] nfsd: make all of the nfsd stats per-network namespace Josef Bacik
2024-01-25 19:53 ` [PATCH v2 10/13] nfsd: move th_cnt into nfsd_net Josef Bacik
2024-01-25 21:01 ` Chuck Lever
2024-01-25 21:56 ` Josef Bacik
2024-01-26 13:01 ` Jeff Layton
2024-01-26 13:48 ` Chuck Lever III
2024-01-26 14:08 ` Jeff Layton
2024-01-26 14:27 ` Chuck Lever III
2024-01-26 15:03 ` Jeff Layton
2024-01-26 15:16 ` Chuck Lever III
2024-01-26 15:35 ` Jeff Layton
2024-01-25 19:53 ` [PATCH v2 11/13] nfsd: make svc_stat per-network namespace instead of global Josef Bacik
2024-01-25 19:53 ` [PATCH v2 12/13] nfs: expose /proc/net/sunrpc/nfs in net namespaces Josef Bacik
2024-01-25 19:53 ` [PATCH v2 13/13] nfs: make the rpc_stat per net namespace Josef Bacik
2024-01-26 13:12 ` [PATCH v2 00/13] Make nfs and nfsd stats visible in network ns Jeff Layton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1706212207.git.josef@toxicpanda.com \
--to=josef@toxicpanda.com \
--cc=kernel-team@fb.com \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox