提交 82ea2d76 编写于 作者: T Trond Myklebust 提交者: J. Bruce Fields

SUNRPC: Add a tracepoint for server socket out-of-space conditions

Add a tracepoint to track when the processing of incoming RPC data gets
deferred due to out-of-space issues on the outgoing transport.
Signed-off-by: NTrond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
上级 d28c442f
...@@ -553,7 +553,7 @@ TRACE_EVENT(svc_xprt_do_enqueue, ...@@ -553,7 +553,7 @@ TRACE_EVENT(svc_xprt_do_enqueue,
__entry->pid, show_svc_xprt_flags(__entry->flags)) __entry->pid, show_svc_xprt_flags(__entry->flags))
); );
TRACE_EVENT(svc_xprt_dequeue, DECLARE_EVENT_CLASS(svc_xprt_event,
TP_PROTO(struct svc_xprt *xprt), TP_PROTO(struct svc_xprt *xprt),
TP_ARGS(xprt), TP_ARGS(xprt),
...@@ -582,6 +582,14 @@ TRACE_EVENT(svc_xprt_dequeue, ...@@ -582,6 +582,14 @@ TRACE_EVENT(svc_xprt_dequeue,
show_svc_xprt_flags(__entry->flags)) show_svc_xprt_flags(__entry->flags))
); );
DEFINE_EVENT(svc_xprt_event, svc_xprt_dequeue,
TP_PROTO(struct svc_xprt *xprt),
TP_ARGS(xprt));
DEFINE_EVENT(svc_xprt_event, svc_xprt_no_write_space,
TP_PROTO(struct svc_xprt *xprt),
TP_ARGS(xprt));
TRACE_EVENT(svc_wake_up, TRACE_EVENT(svc_wake_up,
TP_PROTO(int pid), TP_PROTO(int pid),
......
...@@ -333,8 +333,12 @@ static bool svc_xprt_has_something_to_do(struct svc_xprt *xprt) ...@@ -333,8 +333,12 @@ static bool svc_xprt_has_something_to_do(struct svc_xprt *xprt)
{ {
if (xprt->xpt_flags & ((1<<XPT_CONN)|(1<<XPT_CLOSE))) if (xprt->xpt_flags & ((1<<XPT_CONN)|(1<<XPT_CLOSE)))
return true; return true;
if (xprt->xpt_flags & ((1<<XPT_DATA)|(1<<XPT_DEFERRED))) if (xprt->xpt_flags & ((1<<XPT_DATA)|(1<<XPT_DEFERRED))) {
return xprt->xpt_ops->xpo_has_wspace(xprt); if (xprt->xpt_ops->xpo_has_wspace(xprt))
return true;
trace_svc_xprt_no_write_space(xprt);
return false;
}
return false; return false;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册