On Wed, Sep 04, 2019 at 05:58:08PM +0200, Alexander Graf wrote: > > On 04.09.19 17:51, Sean Christopherson wrote: > >On Wed, Sep 04, 2019 at 05:36:39PM +0200, Alexander Graf wrote: > >> > >>- if (!kvm_intr_is_single_vcpu(kvm, &irq, &vcpu)) { > >>+ if (!kvm_intr_is_single_vcpu(kvm, &irq, &vcpu) || > >>+ !kvm_irq_is_generic(&irq)) { > > > >I've never heard/seen the term generic used to describe x86 interrupts. > >Maybe kvm_irq_is_intr() or kvm_irq_is_vectored_intr()? > > I was trying to come up with any name that describes "interrupt that we can > post". If "intr" is that, I'll be happy to take it. Vectored_intr sounds > even worse IMHO :). kvm_irq_is_intr() is fine by me if it's clear to everyone else. Alternatively, we could be more literal, e.g. kvm_irq_is_postable(). > > > > >> pr_debug("SVM: %s: use legacy intr remap mode for irq %u\n", > >> __func__, irq.vector); > >> return -1; > >>@@ -5314,6 +5315,7 @@ static int svm_update_pi_irte(struct kvm *kvm, > >>unsigned int host_irq, > >> * 1. When cannot target interrupt to a specific vcpu. > >> * 2. Unsetting posted interrupt. > >> * 3. APIC virtialization is disabled for the vcpu. > >>+ * 4. IRQ has extended delivery mode (SMI, INIT, etc) > > > >Similarly, 'extended delivery mode' isn't really a thing, it's simply the > >delivery mode. > > s/extended/incompatible/ maybe? Ya, much better.