linux/include/trace
David Howells b341a0263b rxrpc: Implement progressive transmission queue struct
We need to scan the buffers in the transmission queue occasionally when
processing ACKs, but the transmission queue is currently a linked list of
transmission buffers which, when we eventually expand the Tx window to 8192
packets will be very slow to walk.

Instead, pull the fields we need to examine a lot (last sent time,
retransmitted flag) into a new struct rxrpc_txqueue and make each one hold
an array of 32 or 64 packets.

The transmission queue is then a list of these structs, each pointing to a
contiguous set of packets.  Scanning is then a lot faster as the flags and
timestamps are concentrated in the CPU dcache.

The transmission timestamps are stored as a number of microseconds from a
base ktime to reduce memory requirements.  This should be fine provided we
manage to transmit an entire buffer within an hour.

This will make implementing RACK-TLP [RFC8985] easier as it will be less
costly to scan the transmission buffers.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Link: https://patch.msgid.link/20241204074710.990092-19-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
History 2024-12-09 13:48:27 -08:00
..
events rxrpc: Implement progressive transmission queue struct 2024-12-09 13:48:27 -08:00
misc NFS: trace: show TIMEDOUT instead of 0x6e 2024-09-01 10:04:55 -04:00
stages tracing: Add __print_dynamic_array() helper 2024-10-30 17:24:32 +01:00
bpf_probe.h tracing/bpf: Add might_fault check to syscall probes 2024-10-09 17:09:46 -04:00
define_custom_trace.h tracing: Add TRACE_CUSTOM_EVENT() macro 2022-03-11 11:49:24 -05:00
define_trace.h Add Rust support for trace events: 2024-11-25 15:44:29 -08:00
perf.h tracing/perf: Add might_fault check to syscall probes 2024-10-09 17:09:46 -04:00
syscall.h tracepoints: Migrate to use SYSCALL_WORK flag 2020-11-16 21:53:15 +01:00
trace_custom_events.h tracing: Rename the staging files for trace_events 2022-04-02 08:40:04 -04:00
trace_events.h tracing/ftrace: Add might_fault check to syscall probes 2024-10-09 17:09:36 -04:00