]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
SUNRPC: display total RPC tasks for RPC client
authorDai Ngo <dai.ngo@oracle.com>
Tue, 19 Nov 2024 21:43:23 +0000 (13:43 -0800)
committerAnna Schumaker <anna.schumaker@oracle.com>
Mon, 13 Jan 2025 18:27:25 +0000 (13:27 -0500)
Display the total number of RPC tasks, including tasks waiting
on workqueue and wait queues, for rpc_clnt.

Signed-off-by: Dai Ngo <dai.ngo@oracle.com>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
net/sunrpc/clnt.c
net/sunrpc/debugfs.c

index cc5014b58e3b6f9eeb3044bb6c68bfa71b931ebf..79956948ae9d0317eaf7f1718275266ac5137286 100644 (file)
@@ -3327,8 +3327,11 @@ bool rpc_clnt_xprt_switch_has_addr(struct rpc_clnt *clnt,
 EXPORT_SYMBOL_GPL(rpc_clnt_xprt_switch_has_addr);
 
 #if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
-static void rpc_show_header(void)
+static void rpc_show_header(struct rpc_clnt *clnt)
 {
+       printk(KERN_INFO "clnt[%pISpc] RPC tasks[%d]\n",
+              (struct sockaddr *)&clnt->cl_xprt->addr,
+              atomic_read(&clnt->cl_task_count));
        printk(KERN_INFO "-pid- flgs status -client- --rqstp- "
                "-timeout ---ops--\n");
 }
@@ -3360,7 +3363,7 @@ void rpc_show_tasks(struct net *net)
                spin_lock(&clnt->cl_lock);
                list_for_each_entry(task, &clnt->cl_tasks, tk_task) {
                        if (!header) {
-                               rpc_show_header();
+                               rpc_show_header(clnt);
                                header++;
                        }
                        rpc_show_task(clnt, task);
index a176d5a0b0ee9a2c0ca1d1ed3131b67b782c3296..e4a4c547c70c1707863b79bf957c8436b7b433a4 100644 (file)
@@ -74,6 +74,9 @@ tasks_stop(struct seq_file *f, void *v)
 {
        struct rpc_clnt *clnt = f->private;
        spin_unlock(&clnt->cl_lock);
+       seq_printf(f, "clnt[%pISpc] RPC tasks[%d]\n",
+                  (struct sockaddr *)&clnt->cl_xprt->addr,
+                  atomic_read(&clnt->cl_task_count));
 }
 
 static const struct seq_operations tasks_seq_operations = {