1. 29 Oct, 2014 4 commits
    • Toshiaki Makita's avatar
      net: skb_segment() should preserve backpressure · 432c856f
      Toshiaki Makita authored
      This patch generalizes commit d6a4a104 ("tcp: GSO should be TSQ
      friendly") to protocols using skb_set_owner_w()
      
      TCP uses its own destructor (tcp_wfree) and needs a more complex scheme
      as explained in commit 6ff50cd5 ("tcp: gso: do not generate out of
      order packets")
      
      This allows UDP sockets using UFO to get proper backpressure,
      thus avoiding qdisc drops and excessive cpu usage.
      
      Here are performance test results (macvlan on vlan):
      
      - Before
      # netperf -t UDP_STREAM ...
      Socket  Message  Elapsed      Messages
      Size    Size     Time         Okay Errors   Throughput
      bytes   bytes    secs            #      #   10^6bits/sec
      
      212992   65507   60.00      144096 1224195    1258.56
      212992           60.00          51              0.45
      
      Average:        CPU     %user     %nice   %system   %iowait    %steal     %idle
      Average:        all      0.23      0.00     25.26      0.08      0.00     74.43
      
      - After
      # netperf -t UDP_STREAM ...
      Socket  Message  Elapsed      Messages
      Size    Size     Time         Okay Errors   Throughput
      bytes   bytes    secs            #      #   10^6bits/sec
      
      212992   65507   60.00      109593      0     957.20
      212992           60.00      109593            957.20
      
      Average:        CPU     %user     %nice   %system   %iowait    %steal     %idle
      Average:        all      0.18      0.00      8.38      0.02      0.00     91.43
      
      [edumazet] Rewrote patch and changelog.
      Signed-off-by: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      432c856f
    • Matei Pavaluca's avatar
      gianfar: Implement PAUSE frame generation support · 45b679c9
      Matei Pavaluca authored
      The hardware can automatically generate pause frames when the number
      of free buffers drops under a certain threshold, but in order to do this,
      the address of the last free buffer needs to be written to a specific
      register for each RX queue.
      
      This has to be done in 'gfar_clean_rx_ring' which is called for each
      RX queue. In order not to impact performance, by adding a register write
      for each incoming packet, this operation is done only when the PAUSE frame
      transmission is enabled.
      
      Whenever the link is readjusted, this capability is turned on or off.
      Signed-off-by: default avatarMatei Pavaluca <matei.pavaluca@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      45b679c9
    • Pavaluca Matei-B46610's avatar
      Fix the way the local advertising flow options are determined · 43ef8d29
      Pavaluca Matei-B46610 authored
      Local flow control options needed in order to resolve the negotiation
      are incorrectly calculated.
      
      Previously 'mii_advertise_flowctrl' was called to determine the local advertising
      options, but these were determined based on FLOW_CTRL_RX/TX flags which are
      never set through ethtool.
      The patch simply translates from ethtool flow options to mii flow options.
      Signed-off-by: default avatarPavaluca Matei <matei.pavaluca@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      43ef8d29
    • Pavaluca Matei-B46610's avatar
      Add flow control support flags to gianfar's capabilities · cf987afc
      Pavaluca Matei-B46610 authored
      The phy device supports 802.3x flow control, but the specific flags are not set
      in the phy initialisation code. Flow control flags need to be added to the
      supported capabilities of the phydev by the driver.
      
      This is needed in order for ethtool to work ('ethtool -A' code checks for these
      flags)
      Signed-off-by: default avatarPavaluca Matei <matei.pavaluca@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cf987afc
  2. 28 Oct, 2014 19 commits
  3. 27 Oct, 2014 17 commits