SUNRPC: Expand the svc_alloc_arg_err tracepoint

Record not only the number of pages requested, but the number of
pages that were actually allocated, to get a measure of progress
(or lack thereof).

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
Chuck Lever 2022-06-21 10:06:16 -04:00
parent 184cefbe62
commit 28fffa6c57
2 changed files with 10 additions and 6 deletions

View file

@ -1989,20 +1989,24 @@ TRACE_EVENT(svc_wake_up,
TRACE_EVENT(svc_alloc_arg_err,
TP_PROTO(
unsigned int pages
unsigned int requested,
unsigned int allocated
),
TP_ARGS(pages),
TP_ARGS(requested, allocated),
TP_STRUCT__entry(
__field(unsigned int, pages)
__field(unsigned int, requested)
__field(unsigned int, allocated)
),
TP_fast_assign(
__entry->pages = pages;
__entry->requested = requested;
__entry->allocated = allocated;
),
TP_printk("pages=%u", __entry->pages)
TP_printk("requested=%u allocated=%u",
__entry->requested, __entry->allocated)
);
DECLARE_EVENT_CLASS(svc_deferred_event,

View file

@ -691,7 +691,7 @@ static int svc_alloc_arg(struct svc_rqst *rqstp)
set_current_state(TASK_RUNNING);
return -EINTR;
}
trace_svc_alloc_arg_err(pages);
trace_svc_alloc_arg_err(pages, ret);
memalloc_retry_wait(GFP_KERNEL);
}
rqstp->rq_page_end = &rqstp->rq_pages[pages];