qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC][PATCH 1/2] kvm: Introduce basic MSI support in-ke


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [RFC][PATCH 1/2] kvm: Introduce basic MSI support in-kernel irqchips
Date: Wed, 28 Mar 2012 13:26:37 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, Mar 28, 2012 at 01:09:25PM +0200, Avi Kivity wrote:
> On 03/22/2012 01:17 AM, Jan Kiszka wrote:
> > From: Jan Kiszka <address@hidden>
> >
> > This patch basically adds kvm_irqchip_send_msi, a service for sending
> > arbitrary MSI messages to KVM's in-kernel irqchip models.
> >
> > As the current KVI API requires us to establish a static route from a
> 
> s/KVI/KVM/
> 
> > pseudo GSI to the target MSI message and inject the MSI via toggling
> > that GSI, we need to play some tricks to make this unfortunately
> 
> s/unfortunately/unfortunate/
> 
> > interface transparent. We create those routes on demand and keep them
> > in a hash table. Succeeding messages can then search for an existing
> > route in the table first and reuse it whenever possible. If we should
> > run out of limited GSIs, we simply flush the table and rebuild it as
> > messages are sent.
> >
> > This approach is rather simple and could be optimized further. However,
> > it is more efficient to enhance the KVM API so that we do not need this
> > clumsy dynamic routing over futures kernels.
> 
> Two APIs are clumsier than one.
>
> wet the patch itself, suggest replacing the home grown hash with
> http://developer.gnome.org/glib/2.30/glib-Caches.html.   

I'd claim that the existing API is really not fit
for what this patch wants to do, specifically
support a huge number of MSI vectors.

GSI routing  was supposed to be mostly static. We do things
like RCU slow path when they are changed, so routing
changes during injection will be bad for real time guests.

So either we want to support unlimited number of MSI vectors,
in which case it makes sense to me to add kernel support to do
this efficiently, or not in which case we don't need it
in userspace either.

No?

> -- 
> error compiling committee.c: too many arguments to function



reply via email to

[Prev in Thread] Current Thread [Next in Thread]