1. 30 6月, 2016 1 次提交
  2. 29 6月, 2016 1 次提交
    • J
      e1000e: keep VLAN interfaces functional after rxvlan off · 889ad456
      Jarod Wilson 提交于
      I've got a bug report about an e1000e interface, where a VLAN interface is
      set up on top of it:
      
      $ ip link add link ens1f0 name ens1f0.99 type vlan id 99
      $ ip link set ens1f0 up
      $ ip link set ens1f0.99 up
      $ ip addr add 192.168.99.92 dev ens1f0.99
      
      At this point, I can ping another host on vlan 99, ip 192.168.99.91.
      However, if I do the following:
      
      $ ethtool -K ens1f0 rxvlan off
      
      Then no traffic passes on ens1f0.99. It comes back if I toggle rxvlan on
      again. I'm not sure if this is actually intended behavior, or if there's a
      lack of software VLAN stripping fallback, or what, but things continue to
      work if I simply don't call e1000e_vlan_strip_disable() if there are
      active VLANs (plagiarizing a function from the e1000 driver here) on the
      interface.
      
      Also slipped a related-ish fix to the kerneldoc text for
      e1000e_vlan_strip_disable here...
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      889ad456
  3. 14 5月, 2016 6 次提交
  4. 05 5月, 2016 1 次提交
    • F
      drivers: replace dev->trans_start accesses with dev_trans_start · 4d0e9657
      Florian Westphal 提交于
      a trans_start struct member exists twice:
      - in struct net_device (legacy)
      - in struct netdev_queue
      
      Instead of open-coding dev->trans_start usage to obtain the current
      trans_start value, use dev_trans_start() instead.
      
      This is not exactly the same, as dev_trans_start also considers
      the trans_start values of the netdev queues owned by the device
      and provides the most recent one.
      
      For legacy devices this doesn't matter as dev_trans_start can cope
      with netdev trans_start values of 0 (they are ignored).
      
      This is a prerequisite to eventual removal of dev->trans_start.
      
      Cc: linux-rdma@vger.kernel.org
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4d0e9657
  5. 07 4月, 2016 1 次提交
  6. 25 2月, 2016 1 次提交
  7. 15 12月, 2015 5 次提交
  8. 13 12月, 2015 3 次提交
  9. 16 10月, 2015 1 次提交
    • J
      drivers/net/intel: use napi_complete_done() · 32b3e08f
      Jesse Brandeburg 提交于
      As per Eric Dumazet's previous patches:
      (see commit (24d2e4a5) - tg3: use napi_complete_done())
      
      Quoting verbatim:
      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.
      </end quote>
      
      Tested
      configuration: low latency via ethtool -C ethx adaptive-rx off
      				rx-usecs 10 adaptive-tx off tx-usecs 15
      workload: streaming rx using netperf TCP_MAERTS
      
      igb:
      MIGRATED TCP MAERTS TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.0.0.1 () port 0 AF_INET : demo
      ...
      Interim result:  941.48 10^6bits/s over 1.000 seconds ending at 1440193171.589
      
      Alignment      Offset         Bytes    Bytes       Recvs   Bytes    Sends
      Local  Remote  Local  Remote  Xfered   Per                 Per
      Recv   Send    Recv   Send             Recv (avg)          Send (avg)
          8       8      0       0 1176930056  1475.36    797726   16384.00  71905
      
      MIGRATED TCP MAERTS TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.0.0.1 () port 0 AF_INET : demo
      ...
      Interim result:  941.49 10^6bits/s over 0.997 seconds ending at 1440193142.763
      
      Alignment      Offset         Bytes    Bytes       Recvs   Bytes    Sends
      Local  Remote  Local  Remote  Xfered   Per                 Per
      Recv   Send    Recv   Send             Recv (avg)          Send (avg)
          8       8      0       0 1175182320  50476.00     23282   16384.00  71816
      
      i40e:
      Hard to test because the traffic is incoming so fast (24Gb/s) that GRO
      always receives 87kB, even at the highest interrupt rate.
      
      Other drivers were only compile tested.
      Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      32b3e08f
  10. 23 9月, 2015 1 次提交
  11. 19 8月, 2015 1 次提交
  12. 06 8月, 2015 4 次提交
  13. 23 7月, 2015 1 次提交
  14. 26 6月, 2015 1 次提交
  15. 03 6月, 2015 7 次提交
  16. 04 5月, 2015 2 次提交
    • A
      e1000e: Do not allow CRC stripping to be disabled on 82579 w/ jumbo frames · 55e7fe5b
      Alexander Duyck 提交于
       The driver wasn't allowing jumbo frames to be
       enabled when CRC stripping was disabled, however it was allowing CRC
       stripping to be disabled while jumbo frames were enabled.  This fixes that by
       making it so that the NETIF_F_RXFCS flag cannot be set when jumbo frames are
       enabled on 82579 and newer parts.
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@redhat.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      55e7fe5b
    • A
      e1000e: Cleanup handling of VLAN_HLEN as a part of max frame size · 8084b86d
      Alexander Duyck 提交于
      When the VLAN_HLEN was added to the calculation for the maximum frame size
      there seems to have been a number of issues added to the driver.
      
      The first issue is that in some cases the maximum frame size for a device
      never really reached the actual maximum frame size as the VLAN header
      length was not included the calculation for that value.  As a result some
      parts only supported a maximum frame size of either 1496 in the case of
      parts that didn't support jumbo frames, and 8996 in the case of the parts
      that do.
      
      The second issue is the fact that there were several checks that weren't
      updated so as a result setting an MTU of 1500 was treated as enabling jumbo
      frames as the calculated value was 1522 instead of 1518.  I have addressed
      those by replacing ETH_FRAME_LEN with VLAN_ETH_FRAME_LEN where appropriate.
      
      The final issue was the fact that lowering the MTU below 1500 would cause
      the driver to allocate 2K buffers for the rings.  This is an old issue that
      was fixed several years ago in igb/ixgbe and I am addressing now by just
      replacing == with a <= so that we always just round up to 1522 for anything
      that isn't a jumbo frame.
      
      Fixes: c751a3d5 ("e1000e: Correctly include VLAN_HLEN when changing interface MTU")
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@redhat.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      8084b86d
  17. 14 4月, 2015 1 次提交
  18. 09 4月, 2015 1 次提交
  19. 21 3月, 2015 1 次提交