mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-29 22:14:41 +08:00
ixgbe: Initialize q_vector cpu and affinity masks correctly
When enabling DCB the rings belonging to a q_vector on CPU 0 were not reinitializing their DCA registers. Upon closer inspection the issue was that the q_vector CPU variable was left at 0 resulting in the driver not updating the DCA registers. In order to guarantee the DCA registers will be updated I am adding a couple line change so that we initialize the CPU variable to -1 which will force a DCA update the first time an interrupt fires on that q_vector. In addition we were setting the CPU affinity hint to all CPUs when we were not specifying a CPU. Instead we should leave it as all zeros to avoid any possible confusion about the fact that we shouldn't be giving a hint. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
db0fe0b2f6
commit
245f292d71
@ -802,10 +802,13 @@ static int ixgbe_alloc_q_vector(struct ixgbe_adapter *adapter,
|
||||
/* setup affinity mask and node */
|
||||
if (cpu != -1)
|
||||
cpumask_set_cpu(cpu, &q_vector->affinity_mask);
|
||||
else
|
||||
cpumask_copy(&q_vector->affinity_mask, cpu_online_mask);
|
||||
q_vector->numa_node = node;
|
||||
|
||||
#ifdef CONFIG_IXGBE_DCA
|
||||
/* initialize CPU for DCA */
|
||||
q_vector->cpu = -1;
|
||||
|
||||
#endif
|
||||
/* initialize NAPI */
|
||||
netif_napi_add(adapter->netdev, &q_vector->napi,
|
||||
ixgbe_poll, 64);
|
||||
|
Loading…
Reference in New Issue
Block a user