1. 20 Sep, 2016 34 commits
  2. 19 Sep, 2016 6 commits
    • David S. Miller's avatar
      Merge tag 'rxrpc-rewrite-20160917-2' of... · e867e87a
      David S. Miller authored
      Merge tag 'rxrpc-rewrite-20160917-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
      
      David Howells says:
      
      ====================
      rxrpc: Tracepoint addition and improvement
      
      Here is a set of patches that add some more tracepoints and improve a couple
      of existing ones.  New additions include:
      
       (1) Connection refcount tracking.
      
       (2) Client connection state machine tracking.
      
       (3) Tx and Rx packet lifecycle.
      
       (4) ACK reception and transmission.
      
       (5) recvmsg processing.
      
      Updates include:
      
       (1) Print the symbolic packet name in the Rx packet tracepoint.
      
       (2) Additional call refcount trace events.
      
       (3) Improvements to sk_buff tracking with AF_RXRPC.
      
      In addition:
      
       (1) Config option to inject packet loss during both transmission and
           reception.
      
       (2) Removal of some printks.
      
      This series needs to be applied on top of the previously posted fixes.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e867e87a
    • David S. Miller's avatar
      Merge tag 'rxrpc-rewrite-20160917-1' of... · 5b0c6fc8
      David S. Miller authored
      Merge tag 'rxrpc-rewrite-20160917-1' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
      
      David Howells says:
      
      ====================
      rxrpc: Fixes & miscellany
      
      Here are some more AF_RXRPC fix patches with a couple of miscellaneous
      changes also.  Fixes include:
      
       (1) Make RxRPC IPv6 support conditional on IPv6 being available.
      
       (2) Move the condition check in rxrpc_locate_data() into the caller and
           check the error return.
      
       (3) Fix the detection of the last received packet in recvmsg.
      
       (4) Account calls that need acceptance and clean up any unaccepted ones if
           the socket gets closed.
      
       (5) Fix the cleanup of client connections.
      
       (6) Fix the soft-ACK parsing and the retransmission of packets based on
           those ACKs.
      
       (7) Suppress transmission of an ACK when there's no pending ACK to
           transmit because another thread stole it.
      
      And some miscellany:
      
       (8) Whitespace removal.
      
       (9) Switch-value consistency in rxrpc_send_call_packet().
      
      (10) Fix the basic transmission packet size to allow for spur-of-the-moment
           jumbo DATA packet production.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5b0c6fc8
    • David S. Miller's avatar
      Merge branch 'net-sched-singly-linked-list' · 029ac211
      David S. Miller authored
      Florian Westphal says:
      
      ====================
      sched: convert queues to single-linked list
      
      During Netfilter Workshop 2016 Eric Dumazet pointed out that qdisc
      schedulers use doubly-linked lists, even though single-linked list
      would be enough.
      
      The double-linked skb lists incur one extra write on enqueue/dequeue
      operations (to change ->prev pointer of next list elem).
      
      This series converts qdiscs to single-linked version, listhead
      maintains pointers to first (for dequeue) and last skb (for enqueue).
      
      Most qdiscs don't queue at all and instead use a leaf qdisc (typically
      pfifo_fast) so only a few schedulers needed changes.
      
      I briefly tested netem and htb and they seemed fine.
      
      UDP_STREAM netperf with 64 byte packets via veth+pfifo_fast shows
      a small (~2%) improvement.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      029ac211
    • Florian Westphal's avatar
      sched: add and use qdisc_skb_head helpers · 48da34b7
      Florian Westphal authored
      This change replaces sk_buff_head struct in Qdiscs with new qdisc_skb_head.
      
      Its similar to the skb_buff_head api, but does not use skb->prev pointers.
      
      Qdiscs will commonly enqueue at the tail of a list and dequeue at head.
      While skb_buff_head works fine for this, enqueue/dequeue needs to also
      adjust the prev pointer of next element.
      
      The ->prev pointer is not required for qdiscs so we can just leave
      it undefined and avoid one cacheline write access for en/dequeue.
      Suggested-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      48da34b7
    • Florian Westphal's avatar
      sched: replace __skb_dequeue with __qdisc_dequeue_head · ed760cb8
      Florian Westphal authored
      After previous patch these functions are identical.
      Replace __skb_dequeue in qdiscs with __qdisc_dequeue_head.
      
      Next patch will then make __qdisc_dequeue_head handle
      single-linked list instead of strcut sk_buff_head argument.
      
      Doesn't change generated code.
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ed760cb8
    • Florian Westphal's avatar
      sched: remove qdisc arg from __qdisc_dequeue_head · ec323368
      Florian Westphal authored
      Moves qdisc stat accouting to qdisc_dequeue_head.
      
      The only direct caller of the __qdisc_dequeue_head version open-codes
      this now.
      
      This allows us to later use __qdisc_dequeue_head as a replacement
      of __skb_dequeue() (which operates on sk_buff_head list).
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ec323368