Introduce a single tracepoint that can replace simple dprintk call sites in upper layer "rpc_call_done" callbacks. Example: kworker/u24:2-1254 [001] 771.026677: rpc_stats_latency: task:00000001@00000002 xid=0x16a6f3c0 rpcbindv2 GETPORT backlog=446 rtt=101 execute=555 kworker/u24:2-1254 [001] 771.026677: rpc_task_call_done: task:00000001@00000002 flags=ASYNC|DYNAMIC|SOFT|SOFTCONN|SENT runstate=RUNNING|ACTIVE status=0 action=rpcb_getport_done kworker/u24:2-1254 [001] 771.026678: rpcb_setport: task:00000001@00000002 status=0 port=20048
Unified · Split
| @@ -794,9 +794,6 @@ static void nlmclnt_cancel_callback(struct rpc_task *task, void *data) · 793 unmodified lines | ||
| 794 | 794 | goto retry_cancel; |
| 795 | 795 | } |
| 796 | 796 | |
| 797 | − dprintk("lockd: cancel status %u (task %u)\n", | |
| 798 | − status, task->tk_pid); | |
| 799 | − | |
| 800 | 797 | switch (status) { |
| 801 | 798 | case NLM_LCK_GRANTED: |
| 802 | 799 | case NLM_LCK_DENIED_GRACE_PERIOD: |
| @@ -269,8 +269,6 @@ nlm4svc_proc_granted(struct svc_rqst *rqstp) · 268 unmodified lines | ||
| 269 | 269 | */ |
| 270 | 270 | static void nlm4svc_callback_exit(struct rpc_task *task, void *data) |
| 271 | 271 | { |
| 272 | − dprintk("lockd: %5u callback returned %d\n", task->tk_pid, | |
| 273 | − -task->tk_status); | |
| 274 | 272 | } |
| 275 | 273 | |
| 276 | 274 | static void nlm4svc_callback_release(void *data) |
| @@ -301,8 +301,6 @@ nlmsvc_proc_granted(struct svc_rqst *rqstp) · 300 unmodified lines | ||
| 301 | 301 | */ |
| 302 | 302 | static void nlmsvc_callback_exit(struct rpc_task *task, void *data) |
| 303 | 303 | { |
| 304 | − dprintk("lockd: %5u callback returned %d\n", task->tk_pid, | |
| 305 | − -task->tk_status); | |
| 306 | 304 | } |
| 307 | 305 | |
| 308 | 306 | void nlmsvc_release_call(struct nlm_rqst *call) |
| @@ -293,8 +293,6 @@ static void filelayout_read_call_done(struct rpc_task *task, void *data) · 292 unmodified lines | ||
| 293 | 293 | { |
| 294 | 294 | struct nfs_pgio_header *hdr = data; |
| 295 | 295 | |
| 296 | − dprintk("--> %s task->tk_status %d\n", __func__, task->tk_status); | |
| 297 | − | |
| 298 | 296 | if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && |
| 299 | 297 | task->tk_status == 0) { |
| 300 | 298 | nfs41_sequence_done(task, &hdr->res.seq_res); |
| @@ -1414,8 +1414,6 @@ static void ff_layout_read_call_done(struct rpc_task *task, void *data) · 1413 unmodified lines | ||
| 1414 | 1414 | { |
| 1415 | 1415 | struct nfs_pgio_header *hdr = data; |
| 1416 | 1416 | |
| 1417 | − dprintk("--> %s task->tk_status %d\n", __func__, task->tk_status); | |
| 1418 | − | |
| 1419 | 1417 | if (test_bit(NFS_IOHDR_REDO, &hdr->flags) && |
| 1420 | 1418 | task->tk_status == 0) { |
| 1421 | 1419 | nfs4_sequence_done(task, &hdr->res.seq_res); |
| @@ -864,9 +864,6 @@ static void nfs_pgio_result(struct rpc_task *task, void *calldata) · 863 unmodified lines | ||
| 864 | 864 | struct nfs_pgio_header *hdr = calldata; |
| 865 | 865 | struct inode *inode = hdr->inode; |
| 866 | 866 | |
| 867 | − dprintk("NFS: %s: %5u, (status %d)\n", __func__, | |
| 868 | − task->tk_pid, task->tk_status); | |
| 869 | − | |
| 870 | 867 | if (hdr->rw_ops->rw_done(task, hdr, inode) != 0) |
| 871 | 868 | return; |
| 872 | 869 | if (task->tk_status < 0) |
| @@ -1840,9 +1840,6 @@ static void nfs_commit_done(struct rpc_task *task, void *calldata) · 1839 unmodified lines | ||
| 1840 | 1840 | { |
| 1841 | 1841 | struct nfs_commit_data *data = calldata; |
| 1842 | 1842 | |
| 1843 | − dprintk("NFS: %5u nfs_commit_done (status %d)\n", | |
| 1844 | − task->tk_pid, task->tk_status); | |
| 1845 | − | |
| 1846 | 1843 | /* Call the NFS version-specific code */ |
| 1847 | 1844 | NFS_PROTO(data->inode)->commit_done(task, data); |
| 1848 | 1845 | trace_nfs_commit_done(task, data); |
| @@ -378,6 +378,7 @@ DEFINE_RPC_RUNNING_EVENT(complete); · 377 unmodified lines | ||
| 378 | 378 | DEFINE_RPC_RUNNING_EVENT(timeout); |
| 379 | 379 | DEFINE_RPC_RUNNING_EVENT(signalled); |
| 380 | 380 | DEFINE_RPC_RUNNING_EVENT(end); |
| 381 | +DEFINE_RPC_RUNNING_EVENT(call_done); | |
| 381 | 382 | |
| 382 | 383 | DECLARE_EVENT_CLASS(rpc_task_queued, |
| 383 | 384 | |
| @@ -837,6 +837,7 @@ void rpc_exit_task(struct rpc_task *task) · 836 unmodified lines | ||
| 837 | 837 | else if (task->tk_client) |
| 838 | 838 | rpc_count_iostats(task, task->tk_client->cl_metrics); |
| 839 | 839 | if (task->tk_ops->rpc_call_done != NULL) { |
| 840 | + trace_rpc_task_call_done(task, task->tk_ops->rpc_call_done); | |
| 840 | 841 | task->tk_ops->rpc_call_done(task, task->tk_calldata); |
| 841 | 842 | if (task->tk_action != NULL) { |
| 842 | 843 | /* Always release the RPC slot and buffer memory */ |