Re: [PATCH 3/6] nfsd: add session slot count to /proc/fs/nfsd/clients/*/info

Chuck Lever
2024-11-19T19:21:37Z

On Tue, Nov 19, 2024 at 11:41:30AM +1100, NeilBrown wrote:
> Each client now reports the number of slots allocated in each session.
>
> Signed-off-by: NeilBrown <neilb@suse.de>
> ---
> fs/nfsd/nfs4state.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> index 3889ba1c653f..31ff9f92a895 100644
> --- a/fs/nfsd/nfs4state.c
> +++ b/fs/nfsd/nfs4state.c
> @@ -2642,6 +2642,7 @@ static const char *cb_state2str(int state)
> static int client_info_show(struct seq_file *m, void *v)
> {
> struct inode *inode = file_inode(m->file);
> + struct nfsd4_session *ses;
> struct nfs4_client *clp;
> u64 clid;
>
> @@ -2678,6 +2679,13 @@ static int client_info_show(struct seq_file *m, void *v)
> seq_printf(m, "callback address: \"%pISpc\"\n", &clp->cl_cb_conn.cb_addr);
> seq_printf(m, "admin-revoked states: %d\n",
> atomic_read(&clp->cl_admin_revoked));
> + seq_printf(m, "session slots:");
> + spin_lock(&clp->cl_lock);
> + list_for_each_entry(ses, &clp->cl_sessions, se_perclnt)
> + seq_printf(m, " %u", ses->se_fchannel.maxreqs);
> + spin_unlock(&clp->cl_lock);
> + seq_puts(m, "\n");
> +

Also, I wonder if information about the backchannel session can be
surfaced in this way?

> drop_client(clp);
>
> return 0;
> --
> 2.47.0
>

--
Chuck Lever