1. 09 10月, 2014 8 次提交
    • M
      net: description of dma_cookie cause make xmldocs warning · 709c48b3
      Masanari Iida 提交于
      In commit 7bced397,
      dma_cookie was removed from struct skbuff.
      But the description of dma_cookie still exist.
      So the "make xmldocs" output following warning.
      
      Warning(.//include/linux/skbuff.h:609): Excess struct/union
      /enum/typedef member 'dma_cookie' description in 'sk_buff'
      
      Remove description of dma_cookie fix the symptom.
      Signed-off-by: NMasanari Iida <standby24x7@gmail.com>
      Acked-by: NDan Williams <dan.j.williams@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      709c48b3
    • D
      cxgb4: clean up a type issue · fb5ac0de
      Dan Carpenter 提交于
      The tx_desc struct holds 8 __be64 values.  The original code in
      ring_tx_db() took a tx_desc pointer then casted it to an int pointer and
      then casted it to a u64 pointer.  It was confusing and triggered some
      static checker warnings.
      
      I have changed the cxgb_pio_copy() function to only take tx_desc
      pointers.  This isn't really a loss of flexibility because anything else
      was buggy to begin with.
      
      I also removed the casting on the destination pointer since that was
      unnecessary and a bit messy.
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fb5ac0de
    • D
      cxgb4: potential shift wrapping bug · 9fef8478
      Dan Carpenter 提交于
      "cntxt_id" is an unsigned int but "udb" is a u64 so there is a potential
      shift wrapping bug here.
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9fef8478
    • E
      i40e: skb->xmit_more support · 4567dc10
      Eric Dumazet 提交于
      Support skb->xmit_more in i40e is straightforward : we need to move
      around i40e_maybe_stop_tx() call to correctly test netif_xmit_stopped()
      before taking the decision to not kick the NIC.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDaniel Borkmann <dborkman@redhat.com>
      Acked-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4567dc10
    • D
      Merge branch 'fs_enet_napi' · 44783d87
      David S. Miller 提交于
      Christophe Leroy says:
      
      ====================
      net: fs_enet: Remove non NAPI RX and add NAPI for TX
      
      When using a MPC8xx as a router, 'perf' shows a significant time spent in
      fs_enet_interrupt() and fs_enet_start_xmit().
      'perf annotate' shows that the time spent in fs_enet_start_xmit is indeed spent
      between spin_unlock_irqrestore() and the following instruction, hence in
      interrupt handling. This is due to the TX complete interrupt that fires after
      each transmitted packet.
      This patchset first remove all non NAPI handling as NAPI has become the only
      mode for RX, then adds NAPI for handling TX complete.
      This improves NAT TCP throughput by 21% on MPC885 with FEC.
      
      Tested on MPC885 with FEC.
      
      [PATCH 1/2] net: fs_enet: Remove non NAPI RX
      [PATCH 2/2] net: fs_enet: Add NAPI TX
      Signed-off-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      44783d87
    • L
      net: fs_enet: Add NAPI TX · d43a396a
      LEROY Christophe 提交于
      When using a MPC8xx as a router, 'perf' shows a significant time spent in
      fs_enet_interrupt() and fs_enet_start_xmit().
      'perf annotate' shows that the time spent in fs_enet_start_xmit is indeed spent
      between spin_unlock_irqrestore() and the following instruction, hence in
      interrupt handling. This is due to the TX complete interrupt that fires after
      each transmitted packet.
      This patch modifies the handling of TX complete to use NAPI.
      With this patch, my NAT router offers a throughput improved by 21%
      
      Original performance:
      
      [root@localhost tmp]# scp toto pgs:/tmp
      toto                                          100%  256MB   2.8MB/s   01:31
      
      Performance with the patch:
      
      [root@localhost tmp]# scp toto pgs:/tmp
      toto                                          100%  256MB   3.4MB/s   01:16
      Signed-off-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d43a396a
    • L
      net: fs_enet: Remove non NAPI RX · 583d4a68
      LEROY Christophe 提交于
      In the probe function, use_napi is inconditionnaly set to 1. This patch removes
      all the code which is conditional to !use_napi, and removes use_napi which has
      then become useless.
      Signed-off-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      583d4a68
    • C
      r8169:add support for RTL8168EP · 935e2218
      Chun-Hao Lin 提交于
      RTL8168EP is Realtek PCIe Gigabit Ethernet controller with DASH support.
      It is a successor chip of RTL8168DP.
      
      For RTL8168EP, the read/write ocp register is via eri channel type 2, so I
      move ocp_xxx() related functions under rtl_eri_xxx. And use r8168dp_ocp_xxx()
      for RTL8168DP ocp read/write, r8168ep_ocp_xxx() for RTL8168EP ocp read/write.
      
      The way of checking dash enable is different with RTL8168DP. I use
      r8168dp_check_dash()for RTL8168DP and r8168ep_check_dash() for RTL8168EP,
      to check if dash is enabled.
      
      The driver_start() and driver_stop() of RTL8168EP is also different with
      RTL8168DP. I use rtl8168dp_driver_xxx() for RTL8168DP and
      rtl8168ep_driver_xxx for RTL8168EP.
      
      Right now, RTL8168EP phy mcu did not need firmware code patch, so I did not
      add firmware code for it.
      so I did not add firmware code for it.
      Signed-off-by: NChun-Hao Lin <hau@realtek.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      935e2218
  2. 08 10月, 2014 8 次提交
  3. 07 10月, 2014 21 次提交
  4. 06 10月, 2014 3 次提交
    • D
      Merge branch 'mlx4-next' · 4e62ccd9
      David S. Miller 提交于
      Amir Vadai says:
      
      ====================
      net/mlx4_en: Optimizations to TX flow
      
      This patchset contains optimizations to TX flow in mlx4_en driver. It also introduce
      setting/getting tx copybreak, to enable controlling inline threshold dynamically.
      
      TX flow optimizations was authored and posted to the mailing list by Eric
      Dumazet [1] as a single patch. I splitted this patch to smaller patches,
      Reviewed it and tested.
      Changed from original patch:
      - s/iowrite32be/iowrite32/, since ring->doorbell_qpn is stored as be32
      
      The tx copybreak patch was also suggested by Eric Dumazet, and was edited and
      reviewed by me. User space patch will be sent after kernel code is ready.
      
      I am sending this patchset now since the merge window is near and don't want to
      miss it.
      
      More work need to do:
      - Disable BF when xmit_more is in use
      - Make TSO use xmit_more too. Maybe by splitting small TSO packets in the
        driver itself, to avoid extra cpu/memory costs of GSO before the driver
      - Fix mlx4_en_xmit buggy handling of queue full in the middle of a burst
        partially posted to send queue using xmit_more
      
      Eric, I edited the patches to have you as the Author and the first
      signed-off-by. I hope it is ok with you (I wasn't sure if it is ok to sign by
      you), anyway all the credit to those changes should go to you.
      
      Patchset was tested and applied over commit 1e203c1a "(net: sched:
      suspicious RCU usage in qdisc_watchdog")
      
      [1] - https://patchwork.ozlabs.org/patch/394256/
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4e62ccd9
    • E
      net/mlx4_en: Use the new tx_copybreak to set inline threshold · 1556b874
      Eric Dumazet 提交于
      Instead of setting inline threshold using module parameter only on
      driver load, use set_tunable() to set it dynamically.
      No need to store the threshold per ring, using instead the netdev global
      priv->prof->inline_thold
      Initial value still is set using the module parameter, therefore
      backward compatability is kept.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1556b874
    • E
      ethtool: Ethtool parameter to dynamically change tx_copybreak · 1255a505
      Eric Dumazet 提交于
      Use new ethtool [sg]et_tunable() to set tx_copybread (inline threshold)
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1255a505