On 13/05/2015 03:47, Steve Rutherford wrote: > @@ -205,6 +205,8 @@ int kvm_set_irq_routing(struct kvm *kvm, > > synchronize_srcu_expedited(&kvm->irq_srcu); > > + kvm_vcpu_request_scan_userspace_ioapic(kvm); > + > new = old; > r = 0; > This can be done before synchronize_srcu_expedited, so that changes ripple to the VCPUs faster. > +void kvm_vcpu_request_scan_userspace_ioapic(struct kvm *kvm) > +{ > + struct kvm_ioapic *ioapic = kvm->arch.vioapic; > + > + if (ioapic) > + return; > + if (!lapic_in_kernel(kvm)) > + return; > + kvm_make_scan_ioapic_request(kvm); > +} This is okay for use in kvm_set_irq_routing (perhaps renamed to kvm_arch_irq_routing_update), but when it is used here: > if (!irqchip_split(kvm)) > kvm_vcpu_request_scan_ioapic(kvm); > + else > + kvm_vcpu_request_scan_userspace_ioapic(kvm); ... you can simply do this: - if (!irqchip_split(kvm)) - kvm_vcpu_request_scan_ioapic(kvm); + kvm_make_scan_ioapic_request(kvm); Paolo -- 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