Re: [RFC PATCH 0/3] generic hypercall support

From: Avi Kivity
Date: Tue May 05 2009 - 11:02:44 EST


Gregory Haskins wrote:
I see. I had designed it slightly different where KVM could assign any
top level vector it wanted and thus that drove the guest-side interface
you see here to be more "generic hypercall". However, I think your
proposal is perfectly fine too and it makes sense to more narrowly focus
these calls as specifically "dynamic"...as thats the only vectors that
we could technically use like this anyway.

So rather than allocate a top-level vector, I will add "KVM_HC_DYNAMIC"
to kvm_para.h, and I will change the interface to follow suit (something
like s/hypercall/dynhc). Sound good?

Yeah.

Another couple of points:

- on the host side, we'd rig this to hit an eventfd. Nothing stops us from rigging pio to hit an eventfd as well, giving us kernel handling for pio trigger points.
- pio actually has an advantage over hypercalls with nested guests. Since hypercalls don't have an associated port number, the lowermost hypervisor must interpret a hypercall as going to a guest's hypervisor, and not any lower-level hypervisors. What it boils down to is that you cannot use device assignment to give a guest access to a virtio/vbus device from a lower level hypervisor.

(Bah, that's totally unreadable. What I want is

instead of

hypervisor[eth0/virtio-server] ----> intermediate[virtio-driver/virtio-server] ----> guest[virtio-driver]

do

hypervisor[eth0/virtio-server] ----> intermediate[assign virtio device] ----> guest[virtio-driver]

well, it's probably still unreadable)

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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/