1. 08 4月, 2013 3 次提交
  2. 01 3月, 2013 1 次提交
  3. 09 2月, 2013 2 次提交
  4. 28 1月, 2013 1 次提交
  5. 24 1月, 2013 1 次提交
    • T
      r8169: remove the obsolete and incorrect AMD workaround · 5d0feaff
      Timo Teräs 提交于
      This was introduced in commit 6dccd16b "r8169: merge with version
      6.001.00 of Realtek's r8169 driver". I did not find the version
      6.001.00 online, but in 6.002.00 or any later r8169 from Realtek
      this hunk is no longer present.
      
      Also commit 05af2142 "r8169: fix Ethernet Hangup for RTL8110SC
      rev d" claims to have fixed this issue otherwise.
      
      The magic compare mask of 0xfffe000 is dubious as it masks
      parts of the Reserved part, and parts of the VLAN tag. But this
      does not make much sense as the VLAN tag parts are perfectly
      valid there. In matter of fact this seems to be triggered with
      any VLAN tagged packet as RxVlanTag bit is matched. I would
      suspect 0xfffe0000 was intended to test reserved part only.
      
      Finally, this hunk is evil as it can cause more packets to be
      handled than what was NAPI quota causing net/core/dev.c:
      net_rx_action(): WARN_ON_ONCE(work > weight) to trigger, and
      mess up the NAPI state causing device to hang.
      
      As result, any system using VLANs and having high receive
      traffic (so that NAPI poll budget limits rtl_rx) would result
      in device hang.
      Signed-off-by: NTimo Teräs <timo.teras@iki.fi>
      Acked-by: NFrancois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5d0feaff
  6. 17 1月, 2013 1 次提交
  7. 09 1月, 2013 1 次提交
  8. 09 12月, 2012 1 次提交
  9. 04 12月, 2012 1 次提交
  10. 12 11月, 2012 2 次提交
  11. 05 11月, 2012 1 次提交
  12. 04 11月, 2012 3 次提交
  13. 01 11月, 2012 1 次提交
  14. 26 10月, 2012 1 次提交
  15. 20 9月, 2012 1 次提交
    • M
      r8169: use unlimited DMA burst for TX · aee77e4a
      Michal Schmidt 提交于
      The r8169 driver currently limits the DMA burst for TX to 1024 bytes. I have
      a box where this prevents the interface from using the gigabit line to its full
      potential. This patch solves the problem by setting TX_DMA_BURST to unlimited.
      
      The box has an ASRock B75M motherboard with on-board RTL8168evl/8111evl
      (XID 0c900880). TSO is enabled.
      
      I used netperf (TCP_STREAM test) to measure the dependency of TX throughput
      on MTU. I did it for three different values of TX_DMA_BURST ('5'=512, '6'=1024,
      '7'=unlimited). This chart shows the results:
      http://michich.fedorapeople.org/r8169/r8169-effects-of-TX_DMA_BURST.png
      
      Interesting points:
       - With the current DMA burst limit (1024):
         - at the default MTU=1500 I get only 842 Mbit/s.
         - when going from small MTU, the performance rises monotonically with
           increasing MTU only up to a peak at MTU=1076 (908 MBit/s). Then there's
           a sudden drop to 762 MBit/s from which the throughput rises monotonically
           again with further MTU increases.
       - With a smaller DMA burst limit (512):
         - there's a similar peak at MTU=1076 and another one at MTU=564.
       - With unlimited DMA burst:
         - at the default MTU=1500 I get nice 940 Mbit/s.
         - the throughput rises monotonically with increasing MTU with no strange
           peaks.
      
      Notice that the peaks occur at MTU sizes that are multiples of the DMA burst
      limit plus 52. Why 52? Because:
        20 (IP header) + 20 (TCP header) + 12 (TCP options) = 52
      
      The Realtek-provided r8168 driver (v8.032.00) uses unlimited TX DMA burst too,
      except for CFG_METHOD_1 where the TX DMA burst is set to 512 bytes.
      CFG_METHOD_1 appears to be the oldest MAC version of "RTL8168B/8111B",
      i.e. RTL_GIGA_MAC_VER_11 in r8169. Not sure if this MAC version really needs
      the smaller burst limit, or if any other versions have similar requirements.
      Signed-off-by: NMichal Schmidt <mschmidt@redhat.com>
      Acked-by: NFrancois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      aee77e4a
  16. 01 9月, 2012 1 次提交
  17. 24 8月, 2012 2 次提交
  18. 24 7月, 2012 1 次提交
  19. 18 7月, 2012 2 次提交
  20. 10 7月, 2012 7 次提交
  21. 23 6月, 2012 1 次提交
    • F
      r8169: RxConfig hack for the 8168evl. · eb2dc35d
      françois romieu 提交于
      The 8168evl (RTL_GIGA_MAC_VER_34) based Gigabyte GA-990FXA motherboards
      are very prone to NETDEV watchdog problems without this change. See
      https://bugzilla.kernel.org/show_bug.cgi?id=42899 for instance.
      
      I don't know why it *works*. It's depressingly effective though.
      
      For the record:
      - the problem may go along IOMMU (AMD-Vi) errors but it really looks
        like a red herring.
      - the patch sets the RX_MULTI_EN bit. If the 8168c doc is any guide,
        the chipset now fetches several Rx descriptors at a time.
      - long ago the driver ignored the RX_MULTI_EN bit.
        e542a226 changed the RxConfig
        settings. Whatever the problem it's now labeled a regression.
      - Realtek's own driver can identify two different 8168evl devices
        (CFG_METHOD_16 and CFG_METHOD_17) where the r8169 driver only
        sees one. It sucks.
      Signed-off-by: NFrancois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      eb2dc35d
  22. 11 6月, 2012 1 次提交
    • F
      r8169: avoid NAPI scheduling delay. · 7dbb4918
      françois romieu 提交于
      While reworking the r8169 driver a few months ago to perform the
      smallest amount of work in the irq handler, I took care of avoiding
      any irq mask register operation in the slow work dedicated user
      context thread. The slow work thread scheduled an extra round of NAPI
      work which would ultimately set the irq mask register as required,
      thus keeping such irq mask operations in the NAPI handler.
      It would eventually race with the irq handler and delay NAPI execution
      for - assuming no further irq - a whole ksoftirqd period. Mildly a
      problem for rare link changes or corner case PCI events.
      
      The race was always lost after the last bh disabling lock had been
      removed from the work thread and people started wondering where those
      pesky "NOHZ: local_softirq_pending 08" messages came from.
      
      Actually the irq mask register _can_ be set up directly in the slow
      work thread.
      Signed-off-by: NFrancois Romieu <romieu@fr.zoreil.com>
      Reported-by: NDave Jones <davej@redhat.com>
      Tested-by: NMarc Dionne <marc.c.dionne@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Hayes Wang <hayeswang@realtek.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7dbb4918
  23. 02 6月, 2012 1 次提交
  24. 09 5月, 2012 1 次提交
  25. 17 4月, 2012 2 次提交