@@ -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+
17921815TRACE_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
18131863DECLARE_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-
18911921TRACE_EVENT (svc_wake_up ,
18921922 TP_PROTO (int pid ),
18931923
0 commit comments