Commit bb504321 authored by Dai Ngo's avatar Dai Ngo Committed by Anna Schumaker
Browse files

SUNRPC: display total RPC tasks for RPC client



Display the total number of RPC tasks, including tasks waiting
on workqueue and wait queues, for rpc_clnt.

Signed-off-by: default avatarDai Ngo <dai.ngo@oracle.com>
Signed-off-by: default avatarAnna Schumaker <anna.schumaker@oracle.com>
parent e0537c9f
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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);
+3 −0
Original line number Diff line number Diff line
@@ -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 = {