- 24 Sep, 2016 1 commit
-
-
David Howells authored
Implement RxRPC slow-start, which is similar to RFC 5681 for TCP. A tracepoint is added to log the state of the congestion management algorithm and the decisions it makes. Notes: (1) Since we send fixed-size DATA packets (apart from the final packet in each phase), counters and calculations are in terms of packets rather than bytes. (2) The ACK packet carries the equivalent of TCP SACK. (3) The FLIGHT_SIZE calculation in RFC 5681 doesn't seem particularly suited to SACK of a small number of packets. It seems that, almost inevitably, by the time three 'duplicate' ACKs have been seen, we have narrowed the loss down to one or two missing packets, and the FLIGHT_SIZE calculation ends up as 2. (4) In rxrpc_resend(), if there was no data that apparently needed retransmission, we transmit a PING ACK to ask the peer to tell us what its Rx window state is. Signed-off-by:
David Howells <dhowells@redhat.com>
-
- 23 Sep, 2016 5 commits
-
-
David Howells authored
Add a tracepoint to log in rxrpc_resend() which packets will be retransmitted. Note that if a positive ACK comes in whilst we have dropped the lock to retransmit another packet, the actual retransmission may not happen, though some of the effects will (such as altering the congestion management). Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Add a tracepoint to log proposed ACKs, including whether the proposal is used to update a pending ACK or is discarded in favour of an easlier, higher priority ACK. Whilst we're at it, get rid of the rxrpc_acks() function and access the name array directly. We do, however, need to validate the ACK reason number given to trace_rxrpc_rx_ack() to make sure we don't overrun the array. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Add a tracepoint to log received packets that get discarded due to Rx packet loss. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Add a tracepoint to log transmission of DATA packets (including loss injection). Adjust the ACK transmission tracepoint to include the packet serial number and to line this up with the DATA transmission display. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Add a tracepoint to log call timer initiation, setting and expiry. Signed-off-by:
David Howells <dhowells@redhat.com>
-
- 22 Sep, 2016 1 commit
-
-
David Howells authored
Add a function to track the average RTT for a peer. Sources of RTT data will be added in subsequent patches. The RTT data will be useful in the future for determining resend timeouts and for handling the slow-start part of the Rx protocol. Also add a pair of tracepoints, one to log transmissions to elicit a response for RTT purposes and one to log responses that contribute RTT data. Signed-off-by:
David Howells <dhowells@redhat.com>
-
- 17 Sep, 2016 8 commits
-
-
David Howells authored
Improve sk_buff tracing within AF_RXRPC by the following means: (1) Use an enum to note the event type rather than plain integers and use an array of event names rather than a big multi ?: list. (2) Distinguish Rx from Tx packets and account them separately. This requires the call phase to be tracked so that we know what we might find in rxtx_buffer[]. (3) Add a parameter to rxrpc_{new,see,get,free}_skb() to indicate the event type. (4) A pair of 'rotate' events are added to indicate packets that are about to be rotated out of the Rx and Tx windows. (5) A pair of 'lost' events are added, along with rxrpc_lose_skb() for packet loss injection recording. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Add a tracepoint to follow what recvmsg does within AF_RXRPC. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Add a tracepoint to follow the life of packets that get added to a call's receive buffer. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Add a tracepoint to log information about ACK transmission. Signed-off-by:
David Howels <dhowells@redhat.com>
-
David Howells authored
Add a tracepoint to log information from received ACK packets. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Add a tracepoint to follow the insertion of a packet into the transmit buffer, its transmission and its rotation out of the buffer. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Add a pair of tracepoints, one to track rxrpc_connection struct ref counting and the other to track the client connection cache state. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Print a symbolic packet type name for each valid received packet in the trace output, not just a number. Signed-off-by:
David Howells <dhowells@redhat.com>
-
- 08 Sep, 2016 2 commits
-
-
David Howells authored
Add two tracepoints: (1) Record the RxRPC protocol header of packets retrieved from the UDP socket by the data_ready handler. (2) Record the outcome of the data_ready handler. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Remove the sk_buff count from the rxrpc_call struct as it's less useful once we stop queueing sk_buffs. Signed-off-by:
David Howells <dhowells@redhat.com>
-
- 07 Sep, 2016 2 commits
-
-
David Howells authored
Add a tracepoint for working out where local aborts happen. Each tracepoint call is labelled with a 3-letter code so that they can be distinguished - and the DATA sequence number is added too where available. rxrpc_kernel_abort_call() also takes a 3-letter code so that AFS can indicate the circumstances when it aborts a call. Signed-off-by:
David Howells <dhowells@redhat.com>
-
David Howells authored
Improve the call tracking tracepoint by showing more differentiation between some of the put and get events, including: (1) Getting and putting refs for the socket call user ID tree. (2) Getting and putting refs for queueing and failing to queue the call processor work item. Note that these aren't necessarily used in this patch, but will be taken advantage of in future patches. An enum is added for the event subtype numbers rather than coding them directly as decimal numbers and a table of 3-letter strings is provided rather than a sequence of ?: operators. Signed-off-by:
David Howells <dhowells@redhat.com>
-
- 30 Aug, 2016 1 commit
-
-
David Howells authored
Add a trace event for debuging rxrpc_call struct usage. Signed-off-by:
David Howells <dhowells@redhat.com>
-
- 23 Aug, 2016 1 commit
-
-
David Howells authored
Use a tracepoint to log various skb accounting points to help in debugging refcounting errors. Signed-off-by:
David Howells <dhowells@redhat.com>
-