acrn-hypervisor/hypervisor/include
dongshen f7be985a23 hv: check if the IRQ is intended for a single destination vCPU
Given the vcpumask, check if the IRQ is single destination
and return the destination vCPU if so, the address of associated PI
descriptor for this vCPU can then be passed to dmar_assign_irte() to
set up the posted interrupt IRTE for this device.

For fixed mode interrupt delivery, all vCPUs listed in vcpumask should
service the interrupt requested. But VT-d PI cannot support multicast/broadcast
IRQs, it only supports single CPU destination. So the number of vCPUs
shall be 1 in order to handle IRQ in posted mode for this device.

Add pid_paddr to struct intr_source. If platform_caps.pi is true and
the IRQ is single-destination, pass the physical address of the destination
vCPU's PID to ptirq_build_physical_msi and dmar_assign_irte

Tracked-On: #4506
Signed-off-by: dongshen <dongsheng.x.zhang@intel.com>
Reviewed-by: Eddie Dong <eddie.dong@Intel.com>
2020-04-15 13:47:22 +08:00
..
arch/x86 hv: check if the IRQ is intended for a single destination vCPU 2020-04-15 13:47:22 +08:00
common hv: Introduce Global System Interrupt (GSI) into INTx Remapping 2020-03-25 09:36:18 +08:00
debug HV: correct ept page array usage 2020-03-12 14:56:34 +08:00
dm hv: vm: refine the devices unregistration sequence of vm shutdown 2020-04-08 10:13:37 +08:00
hw hv: vpci: handle the quirk part for pass through pci device cfg access in dm 2020-03-20 10:08:43 +08:00
lib hv: list: rename list_entry to container_of 2020-03-31 10:57:47 +08:00
public hv: vpci: handle the quirk part for pass through pci device cfg access in dm 2020-03-20 10:08:43 +08:00