]> www.infradead.org Git - users/jedix/linux-maple.git/commit
ixgbe: Allocate rings as part of the q_vector
authorAlexander Duyck <alexander.h.duyck@intel.com>
Wed, 8 Feb 2012 07:49:59 +0000 (07:49 +0000)
committerJoe Jin <joe.jin@oracle.com>
Thu, 17 May 2012 15:04:45 +0000 (23:04 +0800)
commitb1bf594aed1745c74f4df03c716d22ab5bd1cee5
tree8521c9aa1f6a56331f5d6dac0b92fea46d7d83a5
parent7c2358da2aed1897b98ead39a15686c483ce2f9c
ixgbe: Allocate rings as part of the q_vector

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.

(cherry picked from commit de88eeeb16b164b615a5d71ad5fa0b7d51b14435)
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/ixgbe/ixgbe.h
drivers/net/ixgbe/ixgbe_ethtool.c
drivers/net/ixgbe/ixgbe_main.c