On Thu, Nov 18, 2010 at 03:14:53PM +0200, Gleb Natapov wrote: > On Thu, Nov 18, 2010 at 03:03:37PM +0200, Michael S. Tsirkin wrote: > > > >+static inline void kvm_irq_routing_update(struct kvm *kvm, > > > >+ struct kvm_irq_routing_table *irq_rt) > > > >+{ > > > >+ rcu_assign_pointer(kvm->irq_routing, irq_rt); > > > >+} > > > >+ > > > > static inline int kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) > > > > { > > > > return -ENOSYS; > > > > > > Apart from these minor issues, looks good. > > > > > > Something we should consider improving is the loop over all VCPUs that > > kvm_irq_delivery_to_apic invokes. I think that (for non-broadcast > > interrupts) it should be possible to precompute an store the CPU > > in question as part of the routing entry. > > > > Something for a separate patch ... comments? > > > I do not think this info should be part of routing entry. Routing entry > is more about describing wires on the board. Not for msi. kvm_kernel_irq_routing_entry seems to just keep an address/data pair in that case. So union { struct { unsigned irqchip; unsigned pin; } irqchip; struct msi_msg msi; }; would become union { struct { unsigned irqchip; unsigned pin; } irqchip; struct { struct msi_msg msi; struct kvm_vpcu *dest; } msi; }; or something like this. > Other then that > this is a good idea that, IIRC, we already discussed once. > > -- > Gleb. -- 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