acrn-hypervisor/hypervisor/include
dongshen a07c3da3da hv: define posted interrupt IRQs/vectors
This is a preparation patch for adding support for VT-d PI
related vCPU scheduling.

ACRN does not support vCPU migration, one vCPU always runs on
the same pCPU, so PI's ndst is never changed after startup.

VCPUs of a VM won’t share same pCPU. So the maximum possible number
of VCPUs that can run on a pCPU is CONFIG_MAX_VM_NUM.

Allocate unique Activation Notification Vectors (ANV) for each vCPU
that belongs to the same pCPU, the ANVs need only be unique within each
pCPU, not across all vCPUs. This reduces # of pre-allocated ANVs for
posted interrupts to CONFIG_MAX_VM_NUM, and enables ACRN to avoid
switching between active and wake-up vector values in the posted
interrupt descriptor on vCPU scheduling state changes.

A total of CONFIG_MAX_VM_NUM consecutive IRQs/vectors are reserved
for posted interrupts use.

The code first initializes vcpu->arch.pid.control.bits.nv dynamically
(will be added in subsequent patch), the other code shall use
vcpu->arch.pid.control.bits.nv instead of the hard-coded notification vectors.

Rename some functions:
  apicv_post_intr --> apicv_trigger_pi_anv
  posted_intr_notification --> handle_pi_notification
  setup_posted_intr_notification --> setup_pi_notification

Tracked-On: #4506
Signed-off-by: dongshen <dongsheng.x.zhang@intel.com>
Reviewed-by: Eddie Dong <eddie.dong@Intel.com>
2020-04-16 13:47:23 +08:00
..
arch/x86 hv: define posted interrupt IRQs/vectors 2020-04-16 13:47:23 +08:00
common hv: Introduce Global System Interrupt (GSI) into INTx Remapping 2020-04-13 11:39:58 +08:00
debug HV: correct ept page array usage 2020-03-12 14:56:34 +08:00
dm hv: vioapic init for SOS VM on platforms with multiple IO-APICs 2020-04-13 11:39:58 +08:00
hw hv: vpci: pass through stolen memory and opregion memory for GVT-D 2020-03-11 10:59:23 +08:00
lib hv: support xsave in context switch 2019-12-02 09:31:12 +08:00
public hv: vPCI: remove passthrough PCI device unuse code 2020-02-24 16:17:38 +08:00