diff options
author | Dexuan Cui <decui@microsoft.com> | 2017-11-01 20:30:53 +0000 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2017-11-07 18:06:39 -0600 |
commit | 79aa801e899417a56863d6713f76c4e108856000 (patch) | |
tree | 81d0d0c303ed08d1c7976e943e94f3de55c35824 /drivers/gpu/drm/amd/amdgpu/amdgpu_trace_points.c | |
parent | 9e66317d3c92ddaab330c125dfe9d06eee268aff (diff) |
PCI: hv: Use effective affinity mask
The effective_affinity_mask is always set when an interrupt is assigned in
__assign_irq_vector() -> apic->cpu_mask_to_apicid(), e.g. for struct apic
apic_physflat: -> default_cpu_mask_to_apicid() ->
irq_data_update_effective_affinity(), but it looks d->common->affinity
remains all-1's before the user space or the kernel changes it later.
In the early allocation/initialization phase of an IRQ, we should use the
effective_affinity_mask, otherwise Hyper-V may not deliver the interrupt to
the expected CPU. Without the patch, if we assign 7 Mellanox ConnectX-3
VFs to a 32-vCPU VM, one of the VFs may fail to receive interrupts.
Tested-by: Adrian Suhov <v-adsuho@microsoft.com>
Signed-off-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Jake Oshins <jakeo@microsoft.com>
Cc: stable@vger.kernel.org
Cc: Jork Loeser <jloeser@microsoft.com>
Cc: Stephen Hemminger <sthemmin@microsoft.com>
Cc: K. Y. Srinivasan <kys@microsoft.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_trace_points.c')
0 files changed, 0 insertions, 0 deletions