1. 13 3月, 2012 3 次提交
    • A
      ixgbe: Simplify logic for ethtool loopback frame creation and testing · 3832b26e
      Alexander Duyck 提交于
      This change makes it a bit easier to do the loopback frame creating and
      testing.  Previously we were doing an and to drop the last bit, and then
      dividing the frame_size by 2 in order to get locations for frame bytes and
      testing.  Instead we can simplify it by just shifting the register one bit
      to the right and using that for the frame offsets.
      
      This change also replaces all instances of rx_buffer_info with just
      rx_buffer since that is closer to the name of the actual structure being
      used and can save a few extra characters.
      
      In addition I have updated the logic for cleaning up a test frame so that
      we pass an rx_buffer instead of the sk_buff.  The main motivation behind
      this is changes that will replace the sk_buff with just a page in the
      future.
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@intel.com>
      Tested-by: NStephen Ko <stephen.s.ko@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      3832b26e
    • A
      ixgbe: Allocate rings as part of the q_vector · de88eeeb
      Alexander Duyck 提交于
      This patch makes the rings a part of the q_vector directly instead of
      indirectly.  Specifically on x86 systems this helps to avoid any cache
      set conflicts between the q_vector, the tx_rings, and the rx_rings as the
      critical stride is 4K and in order to cross that boundary you would need to
      have over 15 rings on a single q_vector.
      
      In addition this allows for smarter allocations when Flow Director is
      enabled.  Previously Flow Director would set the irq_affinity hints based
      on the CPU and was still using a node interleaving approach which on some
      systems would end up with the two values mismatched.  With the new approach
      we can set the affinity for the irq_vector and use the CPU for that
      affinity to determine the node value for the node and the rings.
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@intel.com>
      Tested-by: NStephen Ko <stephen.s.ko@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      de88eeeb
    • J
      ixgbe: remove tie between NAPI work limits and interrupt moderation · 35551c47
      Jeff Kirsher 提交于
      As noted by Ben Hutchings and David Miller, work limits for NAPI
      should not be tied to interrupt moderation parameters.  This
      should be handled by NAPI, possibly through sysfs.
      
      Neil Horman & Stephen Hemminger are working on a solution for
      NAPI currently.  In the meantime, remove this tie between
      work limits and interrupt moderation.
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      CC: Ben Hutchings <bhutchings@solarflare.com>
      Tested-by: NPhil Schmitt <phillip.j.schmitt@intel.com>
      35551c47
  2. 11 2月, 2012 1 次提交
  3. 09 2月, 2012 1 次提交
    • J
      ixgbe: ethtool: stats user buffer overrun · 9cc00b51
      John Fastabend 提交于
      If the number of tx/rx queues changes the ethtool ioctl
      ETHTOOL_GSTATS may overrun the userspace buffer. This
      occurs because the general practice in user space to
      query stats is to issue a ETHTOOL_GSSET cmd to learn the
      buffer size needed, allocate the buffer, then call
      ETHTOOL_GSTIRNGS and ETHTOOL_GSTATS. If the number of
      real_num_queues is changed or flow control attributes
      are changed after ETHTOOL_GSSET but before the
      ETHTOOL_GSTRINGS/ETHTOOL_GSTATS a user space buffer
      overrun occurs.
      
      To fix the overrun always return the max buffer size
      needed from get_sset_count() then return all strings
      and stats from get_strings()/get_ethtool_stats().
      
      This _will_ change the output from the ioctl() call
      which could break applications and script parsing in
      theory. I believe these changes should not break existing
      tools because the only changes will be more {tx|rx}_queues
      and the {tx|rx}_pb_* stats will always be returned.
      Existing scripts already need to handle changing number
      of queues because this occurs today depending on system
      and current features. The {tx|rx}_pb_* stats are at the
      end of the output and should be handled by scripts today
      regardless.
      
      Finally get_ethtool_stats and get_strings are free-form
      outputs tools parsing these outputs should be defensive
      anyways. In the end these updates are better then
      having a tool segfault because of a buffer overrun.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      9cc00b51
  4. 03 2月, 2012 2 次提交
  5. 03 1月, 2012 1 次提交
  6. 15 11月, 2011 1 次提交
  7. 18 10月, 2011 1 次提交
  8. 17 10月, 2011 1 次提交
  9. 13 10月, 2011 1 次提交
  10. 08 10月, 2011 1 次提交
  11. 05 10月, 2011 2 次提交
    • M
      ixgbe: get pauseparam autoneg · 860502bf
      Mika Lansirinne 提交于
      There is a problem in the ixgbe driver with the reporting of the flow
      control parameters. The autoneg parameter is shown to be of if
      *either* it really is off, or current modes for both tx and rx are off.
      
      The problem is seen when the parameters are read or set when the link
      is down. In this case, the driver sees that tx and rx are currently off
      and therefore autoneg parameter is incorrectly reported to be off too.
      Also, the ethtool binary can not set the autoneg off since it sees that
      it already is. When a link later comes up, the autonegotiation is
      carried out normally and the driver later on reports the autoneg
      parameter to be on (as it is) and then it can also be changed with
      ethtool.
      
      The patch is made against v3.0 kernel, but the problem seems to be there
      since v2.6.30-rc1.
      
      Reviewer comments: What we are trying to do is to disable flow control
      while the cable is disconnected. Since ixgbe defaults to full flow
      control, we call ethtool -A autoneg off rx off tx off while the cable
      is disconnected. This doesn't work, because the driver sets
      hw->fc.current_mode = ixgbe_fc_none if the cable is unplugged.
      ixgbe_get_pauseparam() then reports to ethtool that nothing needs to be
      done. The code fixes this, but it might have some unknown consequences.
      Signed-off-by: NMika Lansirinne <mika.lansirinne@stonesoft.com>
      Reviewed-by: NEsa-Pekka Pyokkimies <esa-pekka.pyokkimies@stonesoft.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      860502bf
    • E
      ixgbe: send MFLCN to ethtool · 217995ec
      Emil Tantilov 提交于
      MFLCN register is used to set Rx flow control on parts newer than 82598.
      
      This patch sends the value of MFLCN to ethtool, so it can be used in a
      register dump (ethtool -d).
      Signed-off-by: NEmil Tantilov <emil.s.tantilov@intel.com>
      Tested-by: NStephen Ko <stephen.s.ko@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      217995ec
  12. 29 9月, 2011 1 次提交
  13. 24 9月, 2011 1 次提交
  14. 17 9月, 2011 4 次提交
  15. 16 9月, 2011 1 次提交
  16. 29 8月, 2011 1 次提交
  17. 11 8月, 2011 1 次提交
  18. 04 8月, 2011 1 次提交
  19. 22 7月, 2011 3 次提交
  20. 24 6月, 2011 9 次提交
  21. 07 6月, 2011 1 次提交
  22. 15 5月, 2011 1 次提交
  23. 07 5月, 2011 1 次提交