NFS: nfs_xdr_status should record the procedure name
authorChuck Lever <chuck.lever@oracle.com>
Tue, 12 May 2020 21:14:00 +0000 (17:14 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 11 Jun 2020 17:33:48 +0000 (13:33 -0400)
When sunrpc trace points are not enabled, the recorded task ID
information alone is not helpful.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/nfstrace.h

index 7e7a97ae21ede36c408dae292c9847e786775772..e9065143180462b0e9a3203809d0eccb040c3b78 100644 (file)
@@ -1312,7 +1312,12 @@ TRACE_EVENT(nfs_xdr_status,
                        __field(unsigned int, task_id)
                        __field(unsigned int, client_id)
                        __field(u32, xid)
+                       __field(int, version)
                        __field(unsigned long, error)
+                       __string(program,
+                                xdr->rqst->rq_task->tk_client->cl_program->name)
+                       __string(procedure,
+                                xdr->rqst->rq_task->tk_msg.rpc_proc->p_name)
                ),
 
                TP_fast_assign(
@@ -1322,13 +1327,19 @@ TRACE_EVENT(nfs_xdr_status,
                        __entry->task_id = task->tk_pid;
                        __entry->client_id = task->tk_client->cl_clid;
                        __entry->xid = be32_to_cpu(rqstp->rq_xid);
+                       __entry->version = task->tk_client->cl_vers;
                        __entry->error = error;
+                       __assign_str(program,
+                                    task->tk_client->cl_program->name)
+                       __assign_str(procedure, task->tk_msg.rpc_proc->p_name)
                ),
 
                TP_printk(
-                       "task:%u@%d xid=0x%08x error=%ld (%s)",
+                       "task:%u@%d xid=0x%08x %sv%d %s error=%ld (%s)",
                        __entry->task_id, __entry->client_id, __entry->xid,
-                       -__entry->error, nfs_show_status(__entry->error)
+                       __get_str(program), __entry->version,
+                       __get_str(procedure), -__entry->error,
+                       nfs_show_status(__entry->error)
                )
 );