1. 23 9月, 2016 1 次提交
  2. 21 8月, 2016 1 次提交
  3. 22 7月, 2016 1 次提交
  4. 30 6月, 2016 1 次提交
  5. 04 5月, 2016 2 次提交
  6. 25 4月, 2016 1 次提交
    • J
      ixgbe: use BIT() macro · b4f47a48
      Jacob Keller 提交于
      Several areas of ixgbe were written before widespread usage of the
      BIT(n) macro. With the impending release of GCC 6 and its associated new
      warnings, some usages such as (1 << 31) have been noted within the ixgbe
      driver source. Fix these wholesale and prevent future issues by simply
      using BIT macro instead of hand coded bit shifts.
      
      Also fix a few shifts that are shifting values into place by using the
      'u' prefix to indicate unsigned. It doesn't strictly matter in these
      cases because we're not shifting by too large a value, but these are all
      unsigned values and should be indicated as such.
      Signed-off-by: NJacob Keller <jacob.e.keller@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      b4f47a48
  7. 08 4月, 2016 1 次提交
  8. 30 3月, 2016 1 次提交
  9. 17 2月, 2016 1 次提交
    • J
      net: ixgbe: add support for tc_u32 offload · b82b17d9
      John Fastabend 提交于
      This adds initial support for offloading the u32 tc classifier. This
      initial implementation only implements a few base matches and actions
      to illustrate the use of the infrastructure patches.
      
      However it is an interesting subset because it handles the u32 next
      hdr logic to correctly map tcp packets from ip headers using the ihl
      and protocol fields. After this is accepted we can extend the match
      and action fields easily by updating the model header file.
      
      Also only the drop action is supported initially.
      
      Here is a short test script,
      
       #tc qdisc add dev eth4 ingress
       #tc filter add dev eth4 parent ffff: protocol ip \
      	u32 ht 800: order 1 \
      	match ip dst 15.0.0.1/32 match ip src 15.0.0.2/32 action drop
      
      <-- hardware has dst/src ip match rule installed -->
      
       #tc filter del dev eth4 parent ffff: prio 49152
       #tc filter add dev eth4 parent ffff: protocol ip prio 99 \
      	handle 1: u32 divisor 1
       #tc filter add dev eth4 protocol ip parent ffff: prio 99 \
      	u32 ht 800: order 1 link 1: \
      	offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
       #tc filter add dev eth4 parent ffff: protocol ip \
      	u32 ht 1: order 3 match tcp src 23 ffff action drop
      
      <-- hardware has tcp src port rule installed -->
      
       #tc qdisc del dev eth4 parent ffff:
      
      <-- hardware cleaned up -->
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Acked-by: NJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b82b17d9
  10. 08 1月, 2016 1 次提交
  11. 30 12月, 2015 2 次提交
  12. 12 12月, 2015 1 次提交
  13. 16 10月, 2015 1 次提交
  14. 16 9月, 2015 1 次提交
    • A
      ixgbe: Limit lowest interrupt rate for adaptive interrupt moderation to 12K · 8ac34f10
      Alexander Duyck 提交于
      This patch updates the lowest limit for adaptive interrupt interrupt
      moderation to roughly 12K interrupts per second.
      
      The way I came about reaching 12K as the desired interrupt rate is by
      testing with UDP flows.  Specifically I had a simple test that ran a
      netperf UDP_STREAM test at varying sizes.  What I found was as the packet
      sizes increased the performance fell steadily behind until we were only
      able to receive at ~4Gb/s with a message size of 65507.  A bit of digging
      found that we were dropping packets for the socket in the network stack,
      and looking at things further what I found was I could solve it by increasing
      the interrupt rate, or increasing the rmem_default/rmem_max.  What I found was
      that when the interrupt coalescing resulted in more data being processed
      per interrupt than could be stored in the socket buffer we started losing
      packets and the performance dropped.  So I reached 12K based on the
      following math.
      
      rmem_default = 212992
      skb->truesize = 2994
      212992 / 2994 = 71.14 packets to fill the buffer
      
      packet rate at 1514 packet size is 812744pps
      71.14 / 812744 = 87.9us to fill socket buffer
      
      From there it was just a matter of choosing the interrupt rate and
      providing a bit of wiggle room which is why I decided to go with 12K
      interrupts per second as that uses a value of 84us.
      
      The data below is based on VM to VM over a direct assigned ixgbe interface.
      The test run was:
      	netperf -H <ip> -t UDP_STREAM"
      
      Socket  Message  Elapsed      Messages                   CPU      Service
      Size    Size     Time         Okay Errors   Throughput   Util     Demand
      bytes   bytes    secs            #      #   10^6bits/sec % SS     us/KB
      Before:
      212992   65507   60.00     1100662      0     9613.4     10.89    0.557
      212992           60.00      473474            4135.4     11.27    0.576
      
      After:
      212992   65507   60.00     1100413      0     9611.2     10.73    0.549
      212992           60.00      974132            8508.3     11.69    0.598
      
      Using bare metal the data is similar but not as dramatic as the throughput
      increases from about 8.5Gb/s to 9.5Gb/s.
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@redhat.com>
      Tested-by: NKrishneil Singh <krishneil.k.singh@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      8ac34f10
  15. 02 9月, 2015 2 次提交
  16. 18 7月, 2015 1 次提交
  17. 10 6月, 2015 2 次提交
  18. 28 5月, 2015 1 次提交
    • J
      ixgbe: Allow flow director to use entire queue space · 7aac8425
      John Fastabend 提交于
      Flow director is exported to user space using the ethtool ntuple
      support. However, currently it only supports steering traffic to a
      subset of the queues in use by the hardware. This change allows
      flow director to specify queues that have been assigned to virtual
      functions by partitioning the ring_cookie into a 8bit VF specifier
      followed by 32bit queue index. At the moment we don't have any
      ethernet drivers with more than 2^32 queues on a single function
      as best I can tell and nor do I expect this to happen anytime
      soon. This way the ring_cookie's normal use for specifying a queue
      on a specific PCI function continues to work as expected.
      
      CC: Alex Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Tested-by: NKrishneil Singh <krishneil.k.singh@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      7aac8425
  19. 04 5月, 2015 1 次提交
  20. 11 4月, 2015 1 次提交
  21. 01 4月, 2015 1 次提交
  22. 14 3月, 2015 1 次提交
  23. 06 12月, 2014 1 次提交
  24. 11 11月, 2014 1 次提交
  25. 30 10月, 2014 1 次提交
  26. 02 10月, 2014 1 次提交
  27. 12 9月, 2014 1 次提交
  28. 07 8月, 2014 1 次提交
    • K
      list: fix order of arguments for hlist_add_after(_rcu) · 1d023284
      Ken Helias 提交于
      All other add functions for lists have the new item as first argument
      and the position where it is added as second argument.  This was changed
      for no good reason in this function and makes using it unnecessary
      confusing.
      
      The name was changed to hlist_add_behind() to cause unconverted code to
      generate a compile error instead of using the wrong parameter order.
      
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: NKen Helias <kenhelias@firemail.de>
      Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
      Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>	[intel driver bits]
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1d023284
  29. 21 7月, 2014 1 次提交
  30. 07 6月, 2014 1 次提交
  31. 04 6月, 2014 1 次提交
    • E
      ixgbe: fix detection of SFP+ capable interfaces · d9cd46cd
      Emil Tantilov 提交于
      In cases where the driver is loaded while there are no SFP+ modules in
      the cage the interface was not being detected as SFP capable. To account
      for this the driver called identify_sfp in ixgbe_get_settings to make
      sure the data is correct. However when there is no SFP+ module in the cage
      the driver waits for the I2C reads to time out which can take more than a
      second and will cause issues with tools (like net-snmp) that may poll
      for that information.
      
      This patch resolves the issue by identifying interfaces with no PHY
      type set as SFP capable which allows the driver to detect the SFP module
      when the interface is brought up. As result of this we can also remove the
      identify_sfp call from ixgbe_get_settings.
      
      v2: remove the 82599 specific check since we have 82598 devices that are SFP
      capable.
      Signed-off-by: NEmil Tantilov <emil.s.tantilov@intel.com>
      Tested-by: NPhil Schmitt <phillip.j.schmitt@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      d9cd46cd
  32. 23 5月, 2014 4 次提交
  33. 14 5月, 2014 1 次提交