1. 20 6月, 2012 1 次提交
  2. 08 6月, 2012 1 次提交
  3. 01 5月, 2012 1 次提交
    • E
      bnx2x: remove some bloat · 1191cb83
      Eric Dumazet 提交于
      Before doing skb->head_frag work on bnx2x driver, I found too much stuff
      was inlined in bnx2x/bnx2x_cmn.h for no good reason and made my work not
      very easy.
      
      Move some big functions out of this include file to the respective .c
      file.
      
      A lot of inline keywords are not needed at all in this huge driver.
      
         text	   data	    bss	    dec	    hex	filename
       490083	   1270	     56	 491409	  77f91	bnx2x/bnx2x.ko.before
       484206	   1270	     56	 485532	  7689c	bnx2x/bnx2x.ko
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Maciej Żenczykowski <maze@google.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Cc: Tom Herbert <therbert@google.com>
      Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Cc: Ben Hutchings <bhutchings@solarflare.com>
      Cc: Matt Carlson <mcarlson@broadcom.com>
      Cc: Michael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1191cb83
  4. 24 4月, 2012 1 次提交
    • B
      bnx2x: add afex support · a3348722
      Barak Witkowski 提交于
      Following patch adds afex multifunction support to the driver (afex
      multifunction is based on vntag header) and updates FW version used to 7.2.51.
      
      Support includes the following:
      
      1. Configure vif parameters in firmware (default vlan, vif id, default
         priority, allowed priorities) according to values received from NIC.
      2. Configure FW to strip/add default vlan according to afex vlan mode.
      3. Notify link up to OS only after vif is fully initialized.
      4. Support vif list set/get requests and configure FW accordingly.
      5. Supply afex statistics upon request from NIC.
      6. Special handling to L2 interface in case of FCoE vif.
      Signed-off-by: NBarak Witkowski <barak@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a3348722
  5. 04 4月, 2012 2 次提交
  6. 20 3月, 2012 2 次提交
  7. 13 3月, 2012 2 次提交
  8. 21 2月, 2012 1 次提交
    • D
      use FW 7.2.16 · 621b4d66
      Dmitry Kravkov 提交于
      The patch integrates FW 7.2.16 HSI and implements driver
      part of GRO flow.
      
      FW 7.2.16 adds the ability to aggregate packets for GRO
      (and not just LRO) and also fixes some bugs.
      
      1. Added new aggregation mode: GRO. In this mode packets are aggregated
         such that the original packets can be reconstructed by the OS.
      2. 57712 HW bug workaround - initialized all CAM TM registers to 0x32.
      3. Adding the FCoE statistics structures to the BNX2X HSI.
      4. Wrong configuration of TX HW input buffer size may cause theoretical
         performance effect. Performed configuration fix.
      5. FCOE - Arrival of packets beyond task IO size can lead to crash.
         Fix firmware data-in flow.
      6. iSCSI - In rare cases of on-chip termination the graceful termination
         timer hangs, and the termination doesn't complete. Firmware fix to MSL
         timer tolerance.
      7. iSCSI - Chip hangs when target sends FIN out-of-order or with isles
         open at the initiator side. Firmware implementation corrected to drop
         FIN received out-of-order or with isles still open.
      8. iSCSI - Chip hangs when in case of retransmission not aligned to 4-bytes
         from the beginning of iSCSI PDU. Firmware implementation corrected
         to support arbitrary aligned retransmissions.
      9. iSCSI - Arrival of target-initiated NOP-IN during intense ISCSI traffic
         might lead to crash. Firmware fix to relevant flow.
      Signed-off-by: NDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      621b4d66
  9. 16 2月, 2012 3 次提交
  10. 27 1月, 2012 3 次提交
  11. 24 1月, 2012 2 次提交
  12. 17 1月, 2012 1 次提交
  13. 17 12月, 2011 1 次提交
  14. 07 12月, 2011 2 次提交
  15. 29 11月, 2011 2 次提交
  16. 15 11月, 2011 1 次提交
    • E
      bnx2x: uses build_skb() in receive path · e52fcb24
      Eric Dumazet 提交于
      bnx2x uses following formula to compute its rx_buf_sz :
      
      dev->mtu + 2*L1_CACHE_BYTES + 14 + 8 + 8 + 2
      
      Then core network adds NET_SKB_PAD and SKB_DATA_ALIGN(sizeof(struct
      skb_shared_info))
      
      Final allocated size for skb head on x86_64 (L1_CACHE_BYTES = 64,
      MTU=1500) : 2112 bytes : SLUB/SLAB round this to 4096 bytes.
      
      Since skb truesize is then bigger than SK_MEM_QUANTUM, we have lot of
      false sharing because of mem_reclaim in UDP stack.
      
      One possible way to half truesize is to reduce the need by 64 bytes
      (2112 -> 2048 bytes)
      
      Instead of allocating a full cache line at the end of packet for
      alignment, we can use the fact that skb_shared_info sits at the end of
      skb->head, and we can use this room, if we convert bnx2x to new
      build_skb() infrastructure.
      
      skb_shared_info will be initialized after hardware finished its
      transfert, so we can eventually overwrite the final padding.
      
      Using build_skb() also reduces cache line misses in the driver, since we
      use cache hot skb instead of cold ones. Number of in-flight sk_buff
      structures is lower, they are recycled while still hot.
      
      Performance results :
      
      (820.000 pps on a rx UDP monothread benchmark, instead of 720.000 pps)
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Eilon Greenstein <eilong@broadcom.com>
      CC: Ben Hutchings <bhutchings@solarflare.com>
      CC: Tom Herbert <therbert@google.com>
      CC: Jamal Hadi Salim <hadi@mojatatu.com>
      CC: Stephen Hemminger <shemminger@vyatta.com>
      CC: Thomas Graf <tgraf@infradead.org>
      CC: Herbert Xu <herbert@gondor.apana.org.au>
      CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Acked-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e52fcb24
  17. 09 11月, 2011 1 次提交
  18. 28 10月, 2011 1 次提交
  19. 08 10月, 2011 1 次提交
  20. 17 9月, 2011 1 次提交
  21. 18 8月, 2011 1 次提交
  22. 11 8月, 2011 1 次提交
    • J
      broadcom: Move the Broadcom drivers · adfc5217
      Jeff Kirsher 提交于
      Moves the drivers for Broadcom devices into
      drivers/net/ethernet/broadcom/ and the necessary Kconfig and Makefile
      changes.
      
      CC: Eilon Greenstein <eilong@broadcom.com>
      CC: Michael Chan <mchan@broadcom.com>
      CC: Matt Carlson <mcarlson@broadcom.com>
      CC: Gary Zambrano <zambrano@broadcom.com>
      CC: "Maciej W. Rozycki" <macro@linux-mips.org>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      adfc5217
  23. 22 7月, 2011 1 次提交
  24. 20 7月, 2011 1 次提交
  25. 15 7月, 2011 1 次提交
    • A
      bnx2x: Multiple concurrent l2 traffic classes · 6383c0b3
      Ariel Elior 提交于
      Overview:
       Support mapping of priorities to traffic classes and
       traffic classes to transmission queues ranges in the net device.
       The queue ranges are (count, offset) pairs relating to the txq
       array.
       This can be done via DCBX negotiation or by kernel.
       As a result Enhanced Transmission Selection (ETS) and Priority Flow
       Control (PFC) are supported between L2 network traffic classes.
      
       Mapping:
       This patch uses the netdev_set_num_tc, netdev_set_prio_tc_map and
       netdev_set_tc_queue functions to map priorities to traffic classes
       and traffic classes to transmission queue ranges.
       This mapping is performed by bnx2x_setup_tc function which is
       connected to the ndo_setup_tc.
       This function is always called at nic load where by default it
       maps all priorities to tc 0, and it may also be called by the
       kernel or by the bnx2x upon DCBX negotiation to modify the mapping.
      
       rtnl lock:
       When the ndo_setup_tc is called at nic load or by kernel the rtnl
       lock is already taken. However, when DCBX negotiation takes place
       the lock is not taken. The work is therefore scheduled to be
       handled by the sp_rtnl task.
      
       Fastpath:
       The fastpath structure of the bnx2x which was previously used
       to hold the information of one tx queue and one rx queue was
       redesigned to represent multiple tx queues, one for each traffic
       class.
       The transmission queue supplied in the skb by the kernel can no
       longer be interpreted as a straightforward index into the fastpath
       structure array, but it must rather be decoded to the appropriate
       fastpath index and the tc within that fastpath.
      
       Slowpath:
       The bnx2x's queue object was redesigned to accommodate multiple
       transmission queues. The queue object's state machine was enhanced
       to allow opening multiple transmission-only connections on top of
       the regular tx-rx connection.
      
       Firmware:
       This feature relies on the tx-only queue feature introduced in the
       bnx2x 7.0.23 firmware and the FW likewise must have the bnx2x multi
       cos support.
      Signed-off-by: NAriel Elior <ariele@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6383c0b3
  26. 15 6月, 2011 5 次提交