Windows uses a per-vCPU vector, and it's delivered via the local APIC basically like an MSI (with associated EOI) unlike the traditional guest-wide vector which is just magically asserted by Xen (and in the KVM case by kvm_xen_has_interrupt() / kvm_cpu_get_extint()). Now that the kernel is able to raise event channel events for itself, being able to do so for Windows guests is also going to be useful.
Showing the changes to include/uapi (1 of 3 files). Show all
Unified · Split
| @@ -1754,6 +1754,7 @@ struct kvm_xen_vcpu_attr { · 1753 unmodified lines | ||
| 1754 | 1754 | __u32 priority; |
| 1755 | 1755 | __u64 expires_ns; |
| 1756 | 1756 | } timer; |
| 1757 | + __u8 vector; | |
| 1757 | 1758 | } u; |
| 1758 | 1759 | }; |
| 1759 | 1760 | |
| @@ -1767,6 +1768,7 @@ struct kvm_xen_vcpu_attr { · 7 unmodified lines | ||
| 1767 | 1768 | /* Available with KVM_CAP_XEN_HVM / KVM_XEN_HVM_CONFIG_EVTCHN_SEND */ |
| 1768 | 1769 | #define KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID 0x6 |
| 1769 | 1770 | #define KVM_XEN_VCPU_ATTR_TYPE_TIMER 0x7 |
| 1771 | +#define KVM_XEN_VCPU_ATTR_TYPE_UPCALL_VECTOR 0x8 | |
| 1770 | 1772 | |
| 1771 | 1773 | /* Secure Encrypted Virtualization command */ |
| 1772 | 1774 | enum sev_cmd_id { |