1. 24 8月, 2016 31 次提交
  2. 23 8月, 2016 9 次提交
    • D
      rxrpc: Perform terminal call ACK/ABORT retransmission from conn processor · 18bfeba5
      David Howells 提交于
      Perform terminal call ACK/ABORT retransmission in the connection processor
      rather than in the call processor.  With this change, once last_call is
      set, no more incoming packets will be routed to the corresponding call or
      any earlier calls on that channel (call IDs must only increase on a channel
      on a connection).
      
      Further, if a packet's callNumber is before the last_call ID or a packet is
      aimed at successfully completed service call then that packet is discarded
      and ignored.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      18bfeba5
    • D
      rxrpc: Calculate serial skew on packet reception · 563ea7d5
      David Howells 提交于
      Calculate the serial number skew in the data_ready handler when a packet
      has been received and a connection looked up.  The skew is cached in the
      sk_buff's priority field.
      
      The connection highest received serial number is updated at this time also.
      This can be done without locks or atomic instructions because, at this
      point, the code is serialised by the socket.
      
      This generates more accurate skew data because if the packet is offloaded
      to a work queue before this is determined, more packets may come in,
      bumping the highest serial number and thereby increasing the apparent skew.
      
      This also removes some unnecessary atomic ops.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      563ea7d5
    • D
      rxrpc: Set connection expiry on idle, not put · f51b4480
      David Howells 提交于
      Set the connection expiry time when a connection becomes idle rather than
      doing this in rxrpc_put_connection().  This makes the put path more
      efficient (it is likely to be called occasionally whilst a connection has
      outstanding calls because active workqueue items needs to be given a ref).
      
      The time is also preset in the connection allocator in case the connection
      never gets used.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      f51b4480
    • D
      rxrpc: Use a tracepoint for skb accounting debugging · df844fd4
      David Howells 提交于
      Use a tracepoint to log various skb accounting points to help in debugging
      refcounting errors.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      df844fd4
    • D
      rxrpc: Drop channel number field from rxrpc_call struct · 01a90a45
      David Howells 提交于
      Drop the channel number (channel) field from the rxrpc_call struct to
      reduce the size of the call struct.  The field is redundant: if the call is
      attached to a connection, the channel can be obtained from there by AND'ing
      with RXRPC_CHANNELMASK.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      01a90a45
    • D
      rxrpc: When clearing a socket, clear the call sets in the right order · f36b5e44
      David Howells 提交于
      When clearing a socket, we should clear the securing-in-progress list
      first, then the accept queue and last the main call tree because that's the
      order in which a call progresses.  Not that a call should move from the
      accept queue to the main tree whilst we're shutting down a socket, but it a
      call could possibly move from sequreq to acceptq whilst we're clearing up.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      f36b5e44
    • D
      rxrpc: Tidy up the rxrpc_call struct a bit · dabe5a79
      David Howells 提交于
      Do a little tidying of the rxrpc_call struct:
      
       (1) in_clientflag is no longer compared against the value that's in the
           packet, so keeping it in this form isn't necessary.  Use a flag in
           flags instead and provide a pair of wrapper functions.
      
       (2) We don't read the epoch value, so that can go.
      
       (3) Move what remains of the data that were used for hashing up in the
           struct to be with the channel number.
      
       (4) Get rid of the local pointer.  We can get at this via the socket
           struct and we only use this in the procfs viewer.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      dabe5a79
    • D
      rxrpc: Remove RXRPC_CALL_PROC_BUSY · 26164e77
      David Howells 提交于
      Remove RXRPC_CALL_PROC_BUSY as work queue items are now 100% non-reentrant.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      26164e77
    • D
      Merge branch 'cpsw-mq' · 2d03d439
      David S. Miller 提交于
      Ivan Khoronzhuk says:
      
      ====================
      net: ethernet: ti: cpsw: add cpdma multi-queue support
      
      This series is intended to allow cpsw driver to use cpdma ability of
      h/w shaper to send/receive data with up to 8 tx and 8 rx queues. This
      series doesn't contain interface to configure h/w shaper itself, it
      contains only multi-queue support part and ability to configure number
      of tx/rx queues with ethtool, it also doesn't contain mapping of input
      traffic to rx queues, as it can depend on usage and requires separate
      interface for setup.
      
      Default shaper mode - priority mode. The h/w shaper configuration will
      be added with separate patch series. This series doesn't affect on net
      throughput.
      
      Tested on:
      am572x-idk, 1Gbps link
      am335-boneblack, 100Mbps link.
      
      A simple example for splitting traffic on queues:
      
      $ ethtool -l eth0
      
      $ ethtool -L eth0 rx 8 tx 8
      
      $ tc qdisc add dev eth0 root handle 1: multiq
      
      $ tc filter add dev eth0 parent 1: protocol ip prio 1 u32 \
          match ip dst 172.22.39.12 \
          action skbedit queue_mapping 5
      
      Based on: net-next/master
      V3: https://lkml.org/lkml/2016/8/15/788
      
      Since v3:
      -changed arg to priv in fill_rx_channels in
        net: ethernet: ti: davinci_cpdma: split descs num between all channels
      - added more comments to cpsw_set_channels
      
      Since v2:
      - added new patch to avoid warn while ctrl stop
      
        net: ethernet: ti: cpsw: add ethtool channels support
      - enable ctrl in case at least one interface is running
      
      Since v1:
      - removed cpdam_check_free_desc function
      - remove pm_runtime calls as they are used in begin/complete ethtool calls now
      - removed change of driver version. it can be done later
      - corrected setup of channels for dual_emac mode with ethtool
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2d03d439