]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
rxrpc: Adjust the rxrpc_rtt_rx tracepoint
authorDavid Howells <dhowells@redhat.com>
Wed, 4 Dec 2024 07:46:55 +0000 (07:46 +0000)
committerJakub Kicinski <kuba@kernel.org>
Mon, 9 Dec 2024 21:48:30 +0000 (13:48 -0800)
Adjust the rxrpc_rtt_rx tracepoint in the following ways:

 (1) Display the collected RTT sample in the rxrpc_rtt_rx trace.

 (2) Move the division of srtt by 8 to the TP_printk() rather doing it
     before invoking the trace point.

 (3) Display the min_rtt value.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/trace/events/rxrpc.h
net/rxrpc/input.c
net/rxrpc/rtt.c

index 798bea0853c4cadbd34dc71718804af64ef9d5fe..6e929f4448acf1b98448bb342a41890ca9c9a865 100644 (file)
@@ -1415,9 +1415,9 @@ TRACE_EVENT(rxrpc_rtt_rx,
            TP_PROTO(struct rxrpc_call *call, enum rxrpc_rtt_rx_trace why,
                     int slot,
                     rxrpc_serial_t send_serial, rxrpc_serial_t resp_serial,
-                    u32 rtt, u32 rto),
+                    u32 rtt, u32 srtt, u32 rto),
 
-           TP_ARGS(call, why, slot, send_serial, resp_serial, rtt, rto),
+           TP_ARGS(call, why, slot, send_serial, resp_serial, rtt, srtt, rto),
 
            TP_STRUCT__entry(
                    __field(unsigned int,               call)
@@ -1426,7 +1426,9 @@ TRACE_EVENT(rxrpc_rtt_rx,
                    __field(rxrpc_serial_t,             send_serial)
                    __field(rxrpc_serial_t,             resp_serial)
                    __field(u32,                        rtt)
+                   __field(u32,                        srtt)
                    __field(u32,                        rto)
+                   __field(u32,                        min_rtt)
                             ),
 
            TP_fast_assign(
@@ -1436,17 +1438,21 @@ TRACE_EVENT(rxrpc_rtt_rx,
                    __entry->send_serial = send_serial;
                    __entry->resp_serial = resp_serial;
                    __entry->rtt = rtt;
+                   __entry->srtt = srtt;
                    __entry->rto = rto;
+                   __entry->min_rtt = minmax_get(&call->peer->min_rtt)
                           ),
 
-           TP_printk("c=%08x [%d] %s sr=%08x rr=%08x rtt=%u rto=%u",
+           TP_printk("c=%08x [%d] %s sr=%08x rr=%08x rtt=%u srtt=%u rto=%u min=%u",
                      __entry->call,
                      __entry->slot,
                      __print_symbolic(__entry->why, rxrpc_rtt_rx_traces),
                      __entry->send_serial,
                      __entry->resp_serial,
                      __entry->rtt,
-                     __entry->rto)
+                     __entry->srtt / 8,
+                     __entry->rto,
+                     __entry->min_rtt)
            );
 
 TRACE_EVENT(rxrpc_timer_set,
index c682e95e15dcaf5a7c32b98c3f009edf3fcec41d..1eb9c22aba51631d068bdd3ed565fd61122b59f2 100644 (file)
@@ -740,7 +740,7 @@ static void rxrpc_complete_rtt_probe(struct rxrpc_call *call,
                 */
                if (after(acked_serial, orig_serial)) {
                        trace_rxrpc_rtt_rx(call, rxrpc_rtt_rx_obsolete, i,
-                                          orig_serial, acked_serial, 0, 0);
+                                          orig_serial, acked_serial, 0, 0, 0);
                        clear_bit(i + RXRPC_CALL_RTT_PEND_SHIFT, &call->rtt_avail);
                        smp_wmb();
                        set_bit(i, &call->rtt_avail);
@@ -748,7 +748,7 @@ static void rxrpc_complete_rtt_probe(struct rxrpc_call *call,
        }
 
        if (!matched)
-               trace_rxrpc_rtt_rx(call, rxrpc_rtt_rx_lost, 9, 0, acked_serial, 0, 0);
+               trace_rxrpc_rtt_rx(call, rxrpc_rtt_rx_lost, 9, 0, acked_serial, 0, 0, 0);
 }
 
 /*
index 8048467f4bee83c59051005f3496f71c29a2f525..e0b7d99854b41933e5b650fce737bc64402c0857 100644 (file)
@@ -175,7 +175,7 @@ void rxrpc_peer_add_rtt(struct rxrpc_call *call, enum rxrpc_rtt_rx_trace why,
        spin_unlock(&peer->rtt_input_lock);
 
        trace_rxrpc_rtt_rx(call, why, rtt_slot, send_serial, resp_serial,
-                          peer->srtt_us >> 3, peer->rto_us);
+                          rtt_us, peer->srtt_us, peer->rto_us);
 }
 
 /*