Re: [PATCH v4] KVM: x86/xen: Inject vCPU upcall vector when local APIC is enabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2024-02-14 at 17:32 +0100, Michal Luczaj wrote:
> As I understand, splat here is due to APIC map being gone (because of physical
> APIC ID aliasing?), but I'm not sure what is the expected behaviour.

Good catch, thank you.

	/* The fast version will always work for physical unicast */
	WARN_ON_ONCE(!kvm_irq_delivery_to_apic_fast(v->kvm, NULL, &irq, &r, NULL));

So the comment is wrong, we *can't* rely on it being unicast. With APIC
ID aliasing, it ends up being multicast. But I think we can just do
this:

--- a/arch/x86/kvm/xen.c
+++ b/arch/x86/kvm/xen.c
@@ -580,8 +580,7 @@ void kvm_xen_inject_vcpu_vector(struct kvm_vcpu *v)
        irq.delivery_mode = APIC_DM_FIXED;
        irq.level = 1;
 
-       /* The fast version will always work for physical unicast */
-       WARN_ON_ONCE(!kvm_irq_delivery_to_apic_fast(v->kvm, NULL, &irq, &r, NULL));
+       kvm_irq_delivery_to_apic(v->kvm, NULL, &irq, NULL);
 }
 
 /*


Attachment: smime.p7s
Description: S/MIME cryptographic signature


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux