Re: [kvm-devel] [PATCH 10/13] KVM: Wire up hypercall handlers toa central arch-independent location

From: Arjan van de Ven
Date: Thu Feb 22 2007 - 06:01:48 EST

On Thu, 2007-02-22 at 12:40 +0200, Avi Kivity wrote:
> Arjan van de Ven wrote:
> >> I have Ingo's network PV hypercalls to commit in my piplien.
> >>
> >
> > I have 5 or so pending as well :)
> > can't wait for the infrastructure to be there so that it's relatively
> > easy to add my paravirt block driver
> >
> I can't wait for your pv block driver :)
> What do you think is missing? My list has:
> - registration of hypercall handlers from module

optional I think, but yeah easier for the user

> - execution of hypercall handlers outside vcpu_load() (so they are
> preemptible and sleepable)

I don't need this; most of my hypercalls are non-blocking. The ones that
are can already undo the load themselves, no big deal.

> - passing unhandled hypercalls to userspace for qemu-based devices

hm could do I suppose

One thing I'd like to see is some way to do batched hypercalls. I don't
quite know how this will work in general, but let me explain the
The guest submits a bunch of disk IO requests into a submit queue.
The host gets a hypercall and goes to process the submit queue
While this is processing, the guest submits more IO
The guest would here do another hypercall..

.. but what could be done is have the host poll at the end of it's scan
of the queue if there's more, and while the host is scanning, just
disable the hypercall the guest would make. So that if there is a
"submit while scanning/processing" going on, no need for more

(Otoh... the current situation isn't all that bad, there's one hypercall
for an entire batch of IO's, and the blocklayer isn't all that bad at
giving us nice large batches)

if you want to mail me at work (you don't), use arjan (at)
Test the interaction between Linux and your BIOS via

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at