2016-08-03 1:33 GMT+08:00 Paolo Bonzini <pbonzini@xxxxxxxxxx>: [...] > > Interrupt injections happens through ioctls on the KVM file descriptors > (the CPU file descriptor for KVM_INTERRUPT, the VM file descriptors for others). > > When the LAPIC is emulated by userspace (not the common case) this is > done with the KVM_INTERRUPT ioctl. When the LAPIC is emulated in kernel, > there are various mechanisms. > > ioctl when? interrupt kind > ------------------------------------------------------------------------ > KVM_INTERRUPT i8259 in userspace EXTINT > KVM_SET_GSI_ROUTING (always) IOAPIC > KVM_SIGNAL_MSI (always) MSI > KVM_SET_GSI_ROUTING (always) MSI > KVM_IRQFD any that can use KVM_SET_GSI_ROUTING > > After KVM_SET_GSI_ROUTING, the host invokes another ioctl on the VM MSI routing is also set by KVM_SET_GSI_ROUTING,though MSI/MSI-X doesn't associated with GSI, this is intended to save a KVM API, right? In addition, kvm_send_userspace_msi() which is called in KVM_SIGNAL_MSI path set MSI routing entry again, I saw there are patches which will update gsi routing after changed MSI-X configuration(https://patchwork.kernel.org/patch/6827431/), so why set MSI routing entry again during send MSI? Regards, Wanpeng Li -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html