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

Chuck Lever
2024-11-19T19:14:35Z

On Tue, Nov 19, 2024 at 11:41:30AM +1100, NeilBrown wrote:
> Each client now reports the number of slots allocated in each session.

Can this file also report the target slot count? Ie, is the server
matching the client's requested slot count, or is it over or under
by some number?

Would it be useful for a server tester or administrator to poke a
target slot count value into this file and watch the machinery
adjust?

> 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");
> +
> drop_client(clp);
>
> return 0;
> --
> 2.47.0
>

--
Chuck Lever