Jacob Keller 759dc4a7e6 i40e: initialize our affinity_mask based on cpu_possible_mask
On older kernels a call to irq_set_affinity_hint does not guarantee that
the IRQ affinity will be set. If nothing else on the system sets the IRQ
affinity this can result in a bug in the i40e_napi_poll() routine where
we notice that our interrupt fired on the "wrong" CPU according to our
internal affinity_mask variable.

This results in a bug where we continuously tell NAPI to stop polling to
move the interrupt to a new CPU, but the CPU never changes because our
affinity mask does not match the actual mask setup for the IRQ.

The root problem is a mismatched affinity mask value. So lets initialize
the value to cpu_possible_mask instead. This ensures that prior to the
first time we get an IRQ affinity notification we'll have the mask set
to include every possible CPU.

We use cpu_possible_mask instead of cpu_online_mask since the former is
almost certainly never going to change, while the later might change
after we've made a copy.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-08-27 16:09:03 -07:00
..
2017-08-13 12:33:35 -07:00
2017-08-09 22:43:50 -07:00
2017-08-13 12:44:18 -07:00
2017-07-08 12:36:50 -07:00
2017-07-24 17:38:21 +02:00
2017-07-04 14:28:22 -07:00
2017-07-03 20:55:59 -07:00
2017-08-14 09:34:10 +02:00
2017-07-06 11:32:40 -07:00
2017-07-04 14:47:47 -07:00
2017-07-11 09:55:47 -07:00
2017-07-01 14:30:39 -07:00
2017-08-22 11:04:51 -07:00
2017-07-13 11:49:52 -07:00
2017-07-05 17:09:27 -07:00
2017-07-04 14:47:47 -07:00
2017-07-06 15:38:31 -07:00
2017-08-21 11:08:03 +02:00
2017-08-16 17:21:20 -07:00
2017-08-13 12:30:17 -07:00
2017-08-13 12:41:58 -07:00
2017-08-13 12:27:42 -07:00
2017-07-03 20:27:48 -07:00
2017-08-03 21:37:30 -07:00