On 11/18/2010 03:03 PM, Michael S. Tsirkin wrote:
> > int kvm_set_irq(struct kvm *kvm, int irq_source_id, u32 irq, int level);
> >+int kvm_set_msi(struct kvm_kernel_irq_routing_entry *irq_entry, struct kvm
*kvm,
> >+ int irq_source_id, int level);
>
> No point in the level argument for an msi specific function.
This is an existing function I made non-static.
We have per-gsi callbacks so level is required there to match.
Right.
I could add a wrapper I guess:
int kvm_set_msi(struct kvm_kernel_irq_routing_entry *irq_entry, struct kvm *kvm,
int irq_source_id, int level)
{
if (!level)
return -1;
return kvm_send_msi(irq_entry, kvm, irq_source_id);
}
This results in less code for irqfd but more code for ioctl injection
... is it worth it?
IMO not.
>
> 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?
Yes. Either precompute, or compute on first use and cache. Precompute
is more realtime-friendly so I prefer it.
--
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html