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: Trond Myklebust <trond.myklebust@primarydata.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
Родитель
d28c442f5b
Коммит
82ea2d7615
|
@ -553,7 +553,7 @@ TRACE_EVENT(svc_xprt_do_enqueue,
|
|||
__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_ARGS(xprt),
|
||||
|
@ -582,6 +582,14 @@ TRACE_EVENT(svc_xprt_dequeue,
|
|||
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,
|
||||
TP_PROTO(int pid),
|
||||
|
||||
|
|
|
@ -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)))
|
||||
return true;
|
||||
if (xprt->xpt_flags & ((1<<XPT_DATA)|(1<<XPT_DEFERRED)))
|
||||
return xprt->xpt_ops->xpo_has_wspace(xprt);
|
||||
if (xprt->xpt_flags & ((1<<XPT_DATA)|(1<<XPT_DEFERRED))) {
|
||||
if (xprt->xpt_ops->xpo_has_wspace(xprt))
|
||||
return true;
|
||||
trace_svc_xprt_no_write_space(xprt);
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче