Skip to content

Commit aca3ed7

Browse files
committed
SUNRPC: Same as SVC_RQST_ENDPOINT, but without the xid
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
1 parent 26ce14e commit aca3ed7

1 file changed

Lines changed: 71 additions & 41 deletions

File tree

include/trace/events/sunrpc.h

Lines changed: 71 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1789,50 +1789,99 @@ TRACE_EVENT(svc_xprt_create_err,
17891789
__entry->error)
17901790
);
17911791

1792+
#define SVC_XPRT_ENDPOINT_FIELDS(x) \
1793+
__sockaddr(server, (x)->xpt_locallen) \
1794+
__sockaddr(client, (x)->xpt_remotelen) \
1795+
__field(unsigned long, flags) \
1796+
__field(unsigned int, netns_ino)
1797+
1798+
#define SVC_XPRT_ENDPOINT_ASSIGNMENTS(x) \
1799+
do { \
1800+
__assign_sockaddr(server, &(x)->xpt_local, \
1801+
(x)->xpt_locallen); \
1802+
__assign_sockaddr(client, &(x)->xpt_remote, \
1803+
(x)->xpt_remotelen); \
1804+
__entry->flags = (x)->xpt_flags; \
1805+
__entry->netns_ino = (x)->xpt_net->ns.inum; \
1806+
} while (0)
1807+
1808+
#define SVC_XPRT_ENDPOINT_FORMAT \
1809+
"server=%pISpc client=%pISpc flags=%s"
1810+
1811+
#define SVC_XPRT_ENDPOINT_VARARGS \
1812+
__get_sockaddr(server), __get_sockaddr(client), \
1813+
show_svc_xprt_flags(__entry->flags)
1814+
17921815
TRACE_EVENT(svc_xprt_enqueue,
1793-
TP_PROTO(struct svc_xprt *xprt, struct svc_rqst *rqst),
1816+
TP_PROTO(
1817+
const struct svc_xprt *xprt,
1818+
const struct svc_rqst *rqst
1819+
),
17941820

17951821
TP_ARGS(xprt, rqst),
17961822

17971823
TP_STRUCT__entry(
1824+
SVC_XPRT_ENDPOINT_FIELDS(xprt)
1825+
17981826
__field(int, pid)
1799-
__field(unsigned long, flags)
1800-
__string(addr, xprt->xpt_remotebuf)
18011827
),
18021828

18031829
TP_fast_assign(
1830+
SVC_XPRT_ENDPOINT_ASSIGNMENTS(xprt);
1831+
18041832
__entry->pid = rqst? rqst->rq_task->pid : 0;
1805-
__entry->flags = xprt->xpt_flags;
1806-
__assign_str(addr, xprt->xpt_remotebuf);
18071833
),
18081834

1809-
TP_printk("addr=%s pid=%d flags=%s", __get_str(addr),
1810-
__entry->pid, show_svc_xprt_flags(__entry->flags))
1835+
TP_printk(SVC_XPRT_ENDPOINT_FORMAT " pid=%d",
1836+
SVC_XPRT_ENDPOINT_VARARGS, __entry->pid)
1837+
);
1838+
1839+
TRACE_EVENT(svc_xprt_dequeue,
1840+
TP_PROTO(
1841+
const struct svc_rqst *rqst
1842+
),
1843+
1844+
TP_ARGS(rqst),
1845+
1846+
TP_STRUCT__entry(
1847+
SVC_XPRT_ENDPOINT_FIELDS(rqst->rq_xprt)
1848+
1849+
__field(unsigned long, wakeup)
1850+
),
1851+
1852+
TP_fast_assign(
1853+
SVC_XPRT_ENDPOINT_ASSIGNMENTS(rqst->rq_xprt);
1854+
1855+
__entry->wakeup = ktime_to_us(ktime_sub(ktime_get(),
1856+
rqst->rq_qtime));
1857+
),
1858+
1859+
TP_printk(SVC_XPRT_ENDPOINT_FORMAT " wakeup-us=%lu",
1860+
SVC_XPRT_ENDPOINT_VARARGS, __entry->wakeup)
18111861
);
18121862

18131863
DECLARE_EVENT_CLASS(svc_xprt_event,
1814-
TP_PROTO(struct svc_xprt *xprt),
1864+
TP_PROTO(
1865+
const struct svc_xprt *xprt
1866+
),
18151867

18161868
TP_ARGS(xprt),
18171869

18181870
TP_STRUCT__entry(
1819-
__field(unsigned long, flags)
1820-
__string(addr, xprt->xpt_remotebuf)
1871+
SVC_XPRT_ENDPOINT_FIELDS(xprt)
18211872
),
18221873

18231874
TP_fast_assign(
1824-
__entry->flags = xprt->xpt_flags;
1825-
__assign_str(addr, xprt->xpt_remotebuf);
1875+
SVC_XPRT_ENDPOINT_ASSIGNMENTS(xprt);
18261876
),
18271877

1828-
TP_printk("addr=%s flags=%s", __get_str(addr),
1829-
show_svc_xprt_flags(__entry->flags))
1878+
TP_printk(SVC_XPRT_ENDPOINT_FORMAT, SVC_XPRT_ENDPOINT_VARARGS)
18301879
);
18311880

18321881
#define DEFINE_SVC_XPRT_EVENT(name) \
18331882
DEFINE_EVENT(svc_xprt_event, svc_xprt_##name, \
18341883
TP_PROTO( \
1835-
struct svc_xprt *xprt \
1884+
const struct svc_xprt *xprt \
18361885
), \
18371886
TP_ARGS(xprt))
18381887

@@ -1850,44 +1899,25 @@ TRACE_EVENT(svc_xprt_accept,
18501899
TP_ARGS(xprt, service),
18511900

18521901
TP_STRUCT__entry(
1853-
__string(addr, xprt->xpt_remotebuf)
1902+
SVC_XPRT_ENDPOINT_FIELDS(xprt)
1903+
18541904
__string(protocol, xprt->xpt_class->xcl_name)
18551905
__string(service, service)
18561906
),
18571907

18581908
TP_fast_assign(
1859-
__assign_str(addr, xprt->xpt_remotebuf);
1909+
SVC_XPRT_ENDPOINT_ASSIGNMENTS(xprt);
1910+
18601911
__assign_str(protocol, xprt->xpt_class->xcl_name);
18611912
__assign_str(service, service);
18621913
),
18631914

1864-
TP_printk("addr=%s protocol=%s service=%s",
1865-
__get_str(addr), __get_str(protocol), __get_str(service)
1915+
TP_printk(SVC_XPRT_ENDPOINT_FORMAT " protocol=%s service=%s",
1916+
SVC_XPRT_ENDPOINT_VARARGS,
1917+
__get_str(protocol), __get_str(service)
18661918
)
18671919
);
18681920

1869-
TRACE_EVENT(svc_xprt_dequeue,
1870-
TP_PROTO(struct svc_rqst *rqst),
1871-
1872-
TP_ARGS(rqst),
1873-
1874-
TP_STRUCT__entry(
1875-
__field(unsigned long, flags)
1876-
__field(unsigned long, wakeup)
1877-
__string(addr, rqst->rq_xprt->xpt_remotebuf)
1878-
),
1879-
1880-
TP_fast_assign(
1881-
__entry->flags = rqst->rq_xprt->xpt_flags;
1882-
__entry->wakeup = ktime_to_us(ktime_sub(ktime_get(),
1883-
rqst->rq_qtime));
1884-
__assign_str(addr, rqst->rq_xprt->xpt_remotebuf);
1885-
),
1886-
1887-
TP_printk("addr=%s flags=%s wakeup-us=%lu", __get_str(addr),
1888-
show_svc_xprt_flags(__entry->flags), __entry->wakeup)
1889-
);
1890-
18911921
TRACE_EVENT(svc_wake_up,
18921922
TP_PROTO(int pid),
18931923

0 commit comments

Comments
 (0)