1. 06 3月, 2015 1 次提交
    • E
      tg3: use napi_complete_done() · 24d2e4a5
      Eric Dumazet 提交于
      Using napi_complete_done() instead of napi_complete() allows
      us to use /sys/class/net/ethX/gro_flush_timeout
      
      GRO layer can aggregate more packets if the flush is delayed a bit,
      without having to set too big coalescing parameters that impact
      latencies.
      
      Tested:
      
      lpx:~# echo 0 >/sys/class/net/eth1/gro_flush_timeout
      
      lpx:~# sar -n DEV 1 10 | grep eth1
      10:36:25 AM      eth1  81290.00  40617.00 120479.67   2777.01      0.00      0.00      0.00
      10:36:26 AM      eth1  81283.00  40608.00 120481.81   2778.13      0.00      0.00      1.00
      10:36:27 AM      eth1  81304.00  40639.00 120518.42   2778.28      0.00      0.00      0.00
      10:36:28 AM      eth1  81255.00  40605.00 120437.34   2775.95      0.00      0.00      1.00
      10:36:29 AM      eth1  81306.00  40630.00 120521.44   2777.70      0.00      0.00      0.00
      10:36:30 AM      eth1  81286.00  40564.00 120480.20   2773.31      0.00      0.00      0.00
      10:36:31 AM      eth1  81256.00  40599.00 120438.81   2776.27      0.00      0.00      0.00
      10:36:32 AM      eth1  81287.00  40594.00 120480.69   2776.69      0.00      0.00      0.00
      10:36:33 AM      eth1  81279.00  40601.00 120478.53   2775.84      0.00      0.00      0.00
      10:36:34 AM      eth1  81277.00  40610.00 120476.94   2776.25      0.00      0.00      0.00
      Average:         eth1  81282.30  40606.70 120479.39   2776.54      0.00      0.00      0.20
      
      lpx:~# echo 13000 >/sys/class/net/eth1/gro_flush_timeout
      
      lpx:~# sar -n DEV 1 10 | grep eth1
      10:36:43 AM      eth1  81257.00   7747.00 120437.44    530.00      0.00      0.00      0.00
      10:36:44 AM      eth1  81278.00   7748.00 120480.00    529.85      0.00      0.00      0.00
      10:36:45 AM      eth1  81282.00   7752.00 120479.09    531.09      0.00      0.00      0.00
      10:36:46 AM      eth1  81282.00   7751.00 120478.80    530.90      0.00      0.00      0.00
      10:36:47 AM      eth1  81276.00   7745.00 120478.31    529.64      0.00      0.00      0.00
      10:36:48 AM      eth1  81278.00   7747.00 120478.50    529.81      0.00      0.00      0.00
      10:36:49 AM      eth1  81282.00   7749.00 120478.88    530.01      0.00      0.00      0.00
      10:36:50 AM      eth1  81284.00   7751.00 120481.52    530.20      0.00      0.00      0.00
      10:36:51 AM      eth1  81299.00   7769.00 120481.74    533.81      0.00      0.00      0.00
      10:36:52 AM      eth1  81281.00   7748.00 120478.62    529.96      0.00      0.00      0.00
      Average:         eth1  81279.90   7750.70 120475.29    530.53      0.00      0.00      0.00
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Acked-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      24d2e4a5
  2. 12 2月, 2015 1 次提交
    • J
      tg3: Hold tp->lock before calling tg3_halt() from tg3_init_one() · d0af71a3
      Jun'ichi Nomura \(NEC\) 提交于
      tg3_init_one() calls tg3_halt() without tp->lock despite its assumption
      and causes deadlock.
      If lockdep is enabled, a warning like this shows up before the stall:
      
        [ BUG: bad unlock balance detected! ]
        3.19.0test #3 Tainted: G            E
        -------------------------------------
        insmod/369 is trying to release lock (&(&tp->lock)->rlock) at:
        [<ffffffffa02d5a1d>] tg3_chip_reset+0x14d/0x780 [tg3]
        but there are no more locks to release!
      
      tg3_init_one() doesn't call tg3_halt() under normal situation but
      during kexec kdump I hit this problem.
      
      Fixes: 932f19de ("tg3: Release tp->lock before invoking synchronize_irq()")
      Signed-off-by: NJun'ichi Nomura <j-nomura@ce.jp.nec.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d0af71a3
  3. 15 1月, 2015 3 次提交
  4. 14 1月, 2015 1 次提交
  5. 13 1月, 2015 1 次提交
  6. 23 12月, 2014 1 次提交
    • P
      tg3: tg3_disable_ints using uninitialized mailbox value to disable interrupts · 05b0aa57
      Prashant Sreedharan 提交于
      During driver load in tg3_init_one, if the driver detects DMA activity before
      intializing the chip tg3_halt is called. As part of tg3_halt interrupts are
      disabled using routine tg3_disable_ints. This routine was using mailbox value
      which was not initialized (default value is 0). As a result driver was writing
      0x00000001 to pci config space register 0, which is the vendor id / device id.
      
      This driver bug was exposed because of the commit a7877b17a667 (PCI: Check only
      the Vendor ID to identify Configuration Request Retry). Also this issue is only
      seen in older generation chipsets like 5722 because config space write to offset
      0 from driver is possible. The newer generation chips ignore writes to offset 0.
      Also without commit a7877b17a667, for these older chips when a GRC reset is
      issued the Bootcode would reprogram the vendor id/device id, which is the reason
      this bug was masked earlier.
      
      Fixed by initializing the interrupt mailbox registers before calling tg3_halt.
      
      Please queue for -stable.
      Reported-by: NNils Holland <nholland@tisys.org>
      Reported-by: NMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: NPrashant Sreedharan <prashant@broadcom.com>
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      05b0aa57
  7. 09 12月, 2014 1 次提交
    • E
      ethtool: Support for configurable RSS hash function · 892311f6
      Eyal Perry 提交于
      This patch extends the set/get_rxfh ethtool-options for getting or
      setting the RSS hash function.
      
      It modifies drivers implementation of set/get_rxfh accordingly.
      
      This change also delegates the responsibility of checking whether a
      modification to a certain RX flow hash parameter is supported to the
      driver implementation of set_rxfh.
      
      User-kernel API is done through the new hfunc bitmask field in the
      ethtool_rxfh struct. A bit set in the hfunc field is corresponding to an
      index in the new string-set ETH_SS_RSS_HASH_FUNCS.
      
      Got approval from most of the relevant driver maintainers that their
      driver is using Toeplitz, and for the few that didn't answered, also
      assumed it is Toeplitz.
      
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Cc: Ariel Elior <ariel.elior@qlogic.com>
      Cc: Prashant Sreedharan <prashant@broadcom.com>
      Cc: Michael Chan <mchan@broadcom.com>
      Cc: Hariprasad S <hariprasad@chelsio.com>
      Cc: Sathya Perla <sathya.perla@emulex.com>
      Cc: Subbu Seetharaman <subbu.seetharaman@emulex.com>
      Cc: Ajit Khaparde <ajit.khaparde@emulex.com>
      Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
      Cc: Bruce Allan <bruce.w.allan@intel.com>
      Cc: Carolyn Wyborny <carolyn.wyborny@intel.com>
      Cc: Don Skidmore <donald.c.skidmore@intel.com>
      Cc: Greg Rose <gregory.v.rose@intel.com>
      Cc: Matthew Vick <matthew.vick@intel.com>
      Cc: John Ronciak <john.ronciak@intel.com>
      Cc: Mitch Williams <mitch.a.williams@intel.com>
      Cc: Amir Vadai <amirv@mellanox.com>
      Cc: Solarflare linux maintainers <linux-net-drivers@solarflare.com>
      Cc: Shradha Shah <sshah@solarflare.com>
      Cc: Shreyas Bhatewara <sbhatewara@vmware.com>
      Cc: "VMware, Inc." <pv-drivers@vmware.com>
      Cc: Ben Hutchings <ben@decadent.org.uk>
      Signed-off-by: NEyal Perry <eyalpe@mellanox.com>
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      892311f6
  8. 26 11月, 2014 1 次提交
  9. 17 11月, 2014 1 次提交
  10. 15 10月, 2014 1 次提交
  11. 02 10月, 2014 1 次提交
  12. 23 9月, 2014 1 次提交
  13. 03 9月, 2014 1 次提交
    • I
      tg3: prevent ifup/ifdown during PCI error recovery · 0486a063
      Ivan Vecera 提交于
      The patch fixes race conditions between PCI error recovery callbacks and
      potential ifup/ifdown.
      
      First, if ifup (tg3_open) is called between tg3_io_error_detected() and
      tg3_io_resume() then tp->timer is armed twice before expiry. Once during
      tg3_open() and again during tg3_io_resume(). This results in BUG
      at kernel/time/timer.c:945.
      
      Second, if ifdown (tg3_close) is called between tg3_io_error_detected()
      and tg3_io_resume() then tg3_napi_disable() is called twice without
      a tg3_napi_enable between. Once during tg3_io_error_detected() and again
      during tg3_close(). The tg3_io_resume() then hangs on rtnl_lock().
      
      v2: Added logging messages per Prashant's request
      
      Cc: Prashant Sreedharan <prashant@broadcom.com>
      Cc: Michael Chan <mchan@broadcom.com>
      Signed-off-by: NIvan Vecera <ivecera@redhat.com>
      Acked-by: NPrashant Sreedharan <prashant@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0486a063
  14. 14 8月, 2014 1 次提交
  15. 13 8月, 2014 1 次提交
  16. 06 8月, 2014 1 次提交
  17. 26 6月, 2014 1 次提交
  18. 20 6月, 2014 1 次提交
    • P
      tg3: Clear NETIF_F_TSO6 flag before doing software GSO · 40c1deaf
      Prashant Sreedharan 提交于
      Commit d3f6f3a1 ("tg3: Prevent page
      allocation failure during TSO workaround") modified driver logic
      to use tg3_tso_bug() for any TSO fragment that hits hardware bug
      conditions thus the patch increased the scope of work for tg3_tso_bug()
      to cover devices that support NETIF_F_TSO6 as well. Prior to the
      patch, tg3_tso_bug() would only be used on devices supporting
      NETIF_F_TSO.
      
      A regression was introduced for IPv6 packets requiring the workaround.
      To properly perform GSO on SKBs with TCPV6 gso_type, we need to call
      skb_gso_segment() with NETIF_F_TSO6 feature flag cleared, or the
      function will return NULL and cause a kernel oops as tg3 is not handling
      a NULL return value. This patch fixes the problem.
      Signed-off-by: NPrashant Sreedharan <prashant@broadcom.com>
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      40c1deaf
  19. 03 6月, 2014 1 次提交
  20. 25 5月, 2014 1 次提交
  21. 14 5月, 2014 3 次提交
  22. 19 4月, 2014 1 次提交
  23. 30 3月, 2014 1 次提交
  24. 28 3月, 2014 1 次提交
  25. 27 3月, 2014 1 次提交
  26. 22 3月, 2014 1 次提交
  27. 13 3月, 2014 1 次提交
  28. 01 3月, 2014 1 次提交
  29. 19 2月, 2014 1 次提交
  30. 07 2月, 2014 2 次提交
  31. 17 1月, 2014 1 次提交
  32. 04 1月, 2014 4 次提交