mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 18:56:24 +00:00
SUNRPC: Trace calls to .rpc_call_done
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 Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
d9f877433e
commit
b40887e10d
@ -794,9 +794,6 @@ static void nlmclnt_cancel_callback(struct rpc_task *task, void *data)
|
|||||||
goto retry_cancel;
|
goto retry_cancel;
|
||||||
}
|
}
|
||||||
|
|
||||||
dprintk("lockd: cancel status %u (task %u)\n",
|
|
||||||
status, task->tk_pid);
|
|
||||||
|
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case NLM_LCK_GRANTED:
|
case NLM_LCK_GRANTED:
|
||||||
case NLM_LCK_DENIED_GRACE_PERIOD:
|
case NLM_LCK_DENIED_GRACE_PERIOD:
|
||||||
|
@ -269,8 +269,6 @@ nlm4svc_proc_granted(struct svc_rqst *rqstp)
|
|||||||
*/
|
*/
|
||||||
static void nlm4svc_callback_exit(struct rpc_task *task, void *data)
|
static void nlm4svc_callback_exit(struct rpc_task *task, void *data)
|
||||||
{
|
{
|
||||||
dprintk("lockd: %5u callback returned %d\n", task->tk_pid,
|
|
||||||
-task->tk_status);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void nlm4svc_callback_release(void *data)
|
static void nlm4svc_callback_release(void *data)
|
||||||
|
@ -301,8 +301,6 @@ nlmsvc_proc_granted(struct svc_rqst *rqstp)
|
|||||||
*/
|
*/
|
||||||
static void nlmsvc_callback_exit(struct rpc_task *task, void *data)
|
static void nlmsvc_callback_exit(struct rpc_task *task, void *data)
|
||||||
{
|
{
|
||||||
dprintk("lockd: %5u callback returned %d\n", task->tk_pid,
|
|
||||||
-task->tk_status);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void nlmsvc_release_call(struct nlm_rqst *call)
|
void nlmsvc_release_call(struct nlm_rqst *call)
|
||||||
|
@ -293,8 +293,6 @@ static void filelayout_read_call_done(struct rpc_task *task, void *data)
|
|||||||
{
|
{
|
||||||
struct nfs_pgio_header *hdr = data;
|
struct nfs_pgio_header *hdr = data;
|
||||||
|
|
||||||
dprintk("--> %s task->tk_status %d\n", __func__, task->tk_status);
|
|
||||||
|
|
||||||
if (test_bit(NFS_IOHDR_REDO, &hdr->flags) &&
|
if (test_bit(NFS_IOHDR_REDO, &hdr->flags) &&
|
||||||
task->tk_status == 0) {
|
task->tk_status == 0) {
|
||||||
nfs41_sequence_done(task, &hdr->res.seq_res);
|
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)
|
|||||||
{
|
{
|
||||||
struct nfs_pgio_header *hdr = data;
|
struct nfs_pgio_header *hdr = data;
|
||||||
|
|
||||||
dprintk("--> %s task->tk_status %d\n", __func__, task->tk_status);
|
|
||||||
|
|
||||||
if (test_bit(NFS_IOHDR_REDO, &hdr->flags) &&
|
if (test_bit(NFS_IOHDR_REDO, &hdr->flags) &&
|
||||||
task->tk_status == 0) {
|
task->tk_status == 0) {
|
||||||
nfs4_sequence_done(task, &hdr->res.seq_res);
|
nfs4_sequence_done(task, &hdr->res.seq_res);
|
||||||
|
@ -864,9 +864,6 @@ static void nfs_pgio_result(struct rpc_task *task, void *calldata)
|
|||||||
struct nfs_pgio_header *hdr = calldata;
|
struct nfs_pgio_header *hdr = calldata;
|
||||||
struct inode *inode = hdr->inode;
|
struct inode *inode = hdr->inode;
|
||||||
|
|
||||||
dprintk("NFS: %s: %5u, (status %d)\n", __func__,
|
|
||||||
task->tk_pid, task->tk_status);
|
|
||||||
|
|
||||||
if (hdr->rw_ops->rw_done(task, hdr, inode) != 0)
|
if (hdr->rw_ops->rw_done(task, hdr, inode) != 0)
|
||||||
return;
|
return;
|
||||||
if (task->tk_status < 0)
|
if (task->tk_status < 0)
|
||||||
|
@ -1840,9 +1840,6 @@ static void nfs_commit_done(struct rpc_task *task, void *calldata)
|
|||||||
{
|
{
|
||||||
struct nfs_commit_data *data = calldata;
|
struct nfs_commit_data *data = calldata;
|
||||||
|
|
||||||
dprintk("NFS: %5u nfs_commit_done (status %d)\n",
|
|
||||||
task->tk_pid, task->tk_status);
|
|
||||||
|
|
||||||
/* Call the NFS version-specific code */
|
/* Call the NFS version-specific code */
|
||||||
NFS_PROTO(data->inode)->commit_done(task, data);
|
NFS_PROTO(data->inode)->commit_done(task, data);
|
||||||
trace_nfs_commit_done(task, data);
|
trace_nfs_commit_done(task, data);
|
||||||
|
@ -378,6 +378,7 @@ DEFINE_RPC_RUNNING_EVENT(complete);
|
|||||||
DEFINE_RPC_RUNNING_EVENT(timeout);
|
DEFINE_RPC_RUNNING_EVENT(timeout);
|
||||||
DEFINE_RPC_RUNNING_EVENT(signalled);
|
DEFINE_RPC_RUNNING_EVENT(signalled);
|
||||||
DEFINE_RPC_RUNNING_EVENT(end);
|
DEFINE_RPC_RUNNING_EVENT(end);
|
||||||
|
DEFINE_RPC_RUNNING_EVENT(call_done);
|
||||||
|
|
||||||
DECLARE_EVENT_CLASS(rpc_task_queued,
|
DECLARE_EVENT_CLASS(rpc_task_queued,
|
||||||
|
|
||||||
|
@ -837,6 +837,7 @@ void rpc_exit_task(struct rpc_task *task)
|
|||||||
else if (task->tk_client)
|
else if (task->tk_client)
|
||||||
rpc_count_iostats(task, task->tk_client->cl_metrics);
|
rpc_count_iostats(task, task->tk_client->cl_metrics);
|
||||||
if (task->tk_ops->rpc_call_done != NULL) {
|
if (task->tk_ops->rpc_call_done != NULL) {
|
||||||
|
trace_rpc_task_call_done(task, task->tk_ops->rpc_call_done);
|
||||||
task->tk_ops->rpc_call_done(task, task->tk_calldata);
|
task->tk_ops->rpc_call_done(task, task->tk_calldata);
|
||||||
if (task->tk_action != NULL) {
|
if (task->tk_action != NULL) {
|
||||||
/* Always release the RPC slot and buffer memory */
|
/* Always release the RPC slot and buffer memory */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user