1. 24 Sep, 2016 1 commit
    • David Howells's avatar
      rxrpc: Implement slow-start · 57494343
      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: default avatarDavid Howells <dhowells@redhat.com>
      57494343
  2. 23 Sep, 2016 5 commits
  3. 22 Sep, 2016 1 commit
    • David Howells's avatar
      rxrpc: Add per-peer RTT tracker · cf1a6474
      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: default avatarDavid Howells <dhowells@redhat.com>
      cf1a6474
  4. 17 Sep, 2016 8 commits
  5. 08 Sep, 2016 2 commits
  6. 07 Sep, 2016 2 commits
    • David Howells's avatar
      rxrpc: Add tracepoint for working out where aborts happen · 5a42976d
      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: default avatarDavid Howells <dhowells@redhat.com>
      5a42976d
    • David Howells's avatar
      rxrpc: Improve the call tracking tracepoint · fff72429
      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: default avatarDavid Howells <dhowells@redhat.com>
      fff72429
  7. 30 Aug, 2016 1 commit
  8. 23 Aug, 2016 1 commit