SUNRPC: Expand the svc_alloc_arg_err tracepoint
authorChuck Lever <chuck.lever@oracle.com>
Tue, 21 Jun 2022 14:06:16 +0000 (10:06 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Sat, 30 Jul 2022 00:08:56 +0000 (20:08 -0400)
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>
include/trace/events/sunrpc.h
net/sunrpc/svc_xprt.c

index b61d9c90fa26380ca690f4bdc10fac4c4ddeb42e..5c48be033cc7657a0bf3a10e0e8cc78cb716ac15 100644 (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,
index 2c4dd7ca95b0cd6eedb9919dda1f3b751130b5a9..2106003645a78d7a441efc839f3e31c58af186d1 100644 (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];