@@ -1625,26 +1625,53 @@ TRACE_DEFINE_ENUM(SVC_COMPLETE);
16251625 { SVC_PENDING, "SVC_PENDING" }, \
16261626 { SVC_COMPLETE, "SVC_COMPLETE" })
16271627
1628+ #define SVC_RQST_ENDPOINT_FIELDS (r ) \
1629+ __sockaddr(server, (r)->rq_xprt->xpt_locallen) \
1630+ __sockaddr(client, (r)->rq_xprt->xpt_remotelen) \
1631+ __field(unsigned int, netns_ino) \
1632+ __field(u32, xid)
1633+
1634+ #define SVC_RQST_ENDPOINT_ASSIGNMENTS (r ) \
1635+ do { \
1636+ struct svc_xprt *xprt = (r)->rq_xprt; \
1637+ __assign_sockaddr(server, &xprt->xpt_local, \
1638+ xprt->xpt_locallen); \
1639+ __assign_sockaddr(client, &xprt->xpt_remote, \
1640+ xprt->xpt_remotelen); \
1641+ __entry->netns_ino = xprt->xpt_net->ns.inum; \
1642+ __entry->xid = be32_to_cpu((r)->rq_xid); \
1643+ } while (0)
1644+
1645+ #define SVC_RQST_ENDPOINT_FORMAT \
1646+ "xid=0x%08x server=%pISpc client=%pISpc"
1647+
1648+ #define SVC_RQST_ENDPOINT_VARARGS \
1649+ __entry->xid, __get_sockaddr(server), __get_sockaddr(client)
1650+
16281651TRACE_EVENT (svc_authenticate ,
16291652 TP_PROTO (const struct svc_rqst * rqst , int auth_res ),
16301653
16311654 TP_ARGS (rqst , auth_res ),
16321655
16331656 TP_STRUCT__entry (
1634- __field (u32 , xid )
1657+ SVC_RQST_ENDPOINT_FIELDS (rqst )
1658+
16351659 __field (unsigned long , svc_status )
16361660 __field (unsigned long , auth_stat )
16371661 ),
16381662
16391663 TP_fast_assign (
1640- __entry -> xid = be32_to_cpu (rqst -> rq_xid );
1664+ SVC_RQST_ENDPOINT_ASSIGNMENTS (rqst );
1665+
16411666 __entry -> svc_status = auth_res ;
16421667 __entry -> auth_stat = be32_to_cpu (rqst -> rq_auth_stat );
16431668 ),
16441669
1645- TP_printk ("xid=0x%08x auth_res=%s auth_stat=%s" ,
1646- __entry -> xid , svc_show_status (__entry -> svc_status ),
1647- rpc_show_auth_stat (__entry -> auth_stat ))
1670+ TP_printk (SVC_RQST_ENDPOINT_FORMAT
1671+ " auth_res=%s auth_stat=%s" ,
1672+ SVC_RQST_ENDPOINT_VARARGS ,
1673+ svc_show_status (__entry -> svc_status ),
1674+ rpc_show_auth_stat (__entry -> auth_stat ))
16481675);
16491676
16501677TRACE_EVENT (svc_process ,
@@ -1680,28 +1707,27 @@ TRACE_EVENT(svc_process,
16801707);
16811708
16821709DECLARE_EVENT_CLASS (svc_rqst_event ,
1683-
16841710 TP_PROTO (
16851711 const struct svc_rqst * rqst
16861712 ),
16871713
16881714 TP_ARGS (rqst ),
16891715
16901716 TP_STRUCT__entry (
1691- __field (u32 , xid )
1717+ SVC_RQST_ENDPOINT_FIELDS (rqst )
1718+
16921719 __field (unsigned long , flags )
1693- __string (addr , rqst -> rq_xprt -> xpt_remotebuf )
16941720 ),
16951721
16961722 TP_fast_assign (
1697- __entry -> xid = be32_to_cpu (rqst -> rq_xid );
1723+ SVC_RQST_ENDPOINT_ASSIGNMENTS (rqst );
1724+
16981725 __entry -> flags = rqst -> rq_flags ;
1699- __assign_str (addr , rqst -> rq_xprt -> xpt_remotebuf );
17001726 ),
17011727
1702- TP_printk ("addr=%s xid=0x%08x flags=%s" ,
1703- __get_str ( addr ), __entry -> xid ,
1704- show_rqstp_flags (__entry -> flags ))
1728+ TP_printk (SVC_RQST_ENDPOINT_FORMAT " flags=%s" ,
1729+ SVC_RQST_ENDPOINT_VARARGS ,
1730+ show_rqstp_flags (__entry -> flags ))
17051731);
17061732#define DEFINE_SVC_RQST_EVENT (name ) \
17071733 DEFINE_EVENT(svc_rqst_event, svc_##name, \
@@ -1714,34 +1740,63 @@ DEFINE_SVC_RQST_EVENT(defer);
17141740DEFINE_SVC_RQST_EVENT (drop );
17151741
17161742DECLARE_EVENT_CLASS (svc_rqst_status ,
1717-
1718- TP_PROTO (struct svc_rqst * rqst , int status ),
1743+ TP_PROTO (
1744+ const struct svc_rqst * rqst ,
1745+ int status
1746+ ),
17191747
17201748 TP_ARGS (rqst , status ),
17211749
17221750 TP_STRUCT__entry (
1723- __field (u32 , xid )
1751+ SVC_RQST_ENDPOINT_FIELDS (rqst )
1752+
17241753 __field (int , status )
17251754 __field (unsigned long , flags )
1726- __string (addr , rqst -> rq_xprt -> xpt_remotebuf )
17271755 ),
17281756
17291757 TP_fast_assign (
1730- __entry -> xid = be32_to_cpu (rqst -> rq_xid );
1758+ SVC_RQST_ENDPOINT_ASSIGNMENTS (rqst );
1759+
17311760 __entry -> status = status ;
17321761 __entry -> flags = rqst -> rq_flags ;
1733- __assign_str (addr , rqst -> rq_xprt -> xpt_remotebuf );
17341762 ),
17351763
1736- TP_printk ("addr=%s xid=0x%08x status=%d flags=%s" ,
1737- __get_str ( addr ), __entry -> xid ,
1738- __entry -> status , show_rqstp_flags (__entry -> flags ))
1764+ TP_printk (SVC_RQST_ENDPOINT_FORMAT " status=%d flags=%s" ,
1765+ SVC_RQST_ENDPOINT_VARARGS ,
1766+ __entry -> status , show_rqstp_flags (__entry -> flags ))
17391767);
17401768
17411769DEFINE_EVENT (svc_rqst_status , svc_send ,
1742- TP_PROTO (struct svc_rqst * rqst , int status ),
1770+ TP_PROTO (const struct svc_rqst * rqst , int status ),
17431771 TP_ARGS (rqst , status ));
17441772
1773+ TRACE_EVENT (svc_stats_latency ,
1774+ TP_PROTO (
1775+ const struct svc_rqst * rqst
1776+ ),
1777+
1778+ TP_ARGS (rqst ),
1779+
1780+ TP_STRUCT__entry (
1781+ SVC_RQST_ENDPOINT_FIELDS (rqst )
1782+
1783+ __field (unsigned long , execute )
1784+ __string (procedure , svc_proc_name (rqst ))
1785+ ),
1786+
1787+ TP_fast_assign (
1788+ SVC_RQST_ENDPOINT_ASSIGNMENTS (rqst );
1789+
1790+ __entry -> execute = ktime_to_us (ktime_sub (ktime_get (),
1791+ rqst -> rq_stime ));
1792+ __assign_str (procedure , svc_proc_name (rqst ));
1793+ ),
1794+
1795+ TP_printk (SVC_RQST_ENDPOINT_FORMAT " proc=%s execute-us=%lu" ,
1796+ SVC_RQST_ENDPOINT_VARARGS ,
1797+ __get_str (procedure ), __entry -> execute )
1798+ );
1799+
17451800#define show_svc_xprt_flags (flags ) \
17461801 __print_flags(flags, "|", \
17471802 { (1UL << XPT_BUSY), "XPT_BUSY"}, \
@@ -1952,31 +2007,6 @@ TRACE_EVENT(svc_alloc_arg_err,
19522007 TP_printk ("pages=%u" , __entry -> pages )
19532008);
19542009
1955- TRACE_EVENT (svc_stats_latency ,
1956- TP_PROTO (const struct svc_rqst * rqst ),
1957-
1958- TP_ARGS (rqst ),
1959-
1960- TP_STRUCT__entry (
1961- __field (u32 , xid )
1962- __field (unsigned long , execute )
1963- __string (procedure , svc_proc_name (rqst ))
1964- __string (addr , rqst -> rq_xprt -> xpt_remotebuf )
1965- ),
1966-
1967- TP_fast_assign (
1968- __entry -> xid = be32_to_cpu (rqst -> rq_xid );
1969- __entry -> execute = ktime_to_us (ktime_sub (ktime_get (),
1970- rqst -> rq_stime ));
1971- __assign_str (procedure , svc_proc_name (rqst ));
1972- __assign_str (addr , rqst -> rq_xprt -> xpt_remotebuf );
1973- ),
1974-
1975- TP_printk ("addr=%s xid=0x%08x proc=%s execute-us=%lu" ,
1976- __get_str (addr ), __entry -> xid , __get_str (procedure ),
1977- __entry -> execute )
1978- );
1979-
19802010DECLARE_EVENT_CLASS (svc_deferred_event ,
19812011 TP_PROTO (
19822012 const struct svc_deferred_req * dr
0 commit comments