On Wed, 2011-01-26 at 13:12 +0200, Avi Kivity wrote: > On 01/24/2011 08:06 PM, Glauber Costa wrote: > > KVM, which stands for KVM Virtual Memory (I wanted to call it KVM Virtual Mojito), > > is a piece of shared memory that is visible to both the hypervisor and the guest > > kernel - but not the guest userspace. > > > > The basic idea is that the guest can tell the hypervisor about a specific > > piece of memory, and what it expects to find in there. This is a generic > > abstraction, that goes to userspace (qemu) if KVM (the hypervisor) can't > > handle a specific request, thus giving us flexibility in some features > > in the future. > > > > KVM (The hypervisor) can change the contents of this piece of memory at > > will. This works well with paravirtual information, and hopefully > > normal guest memory - like last update time for the watchdog, for > > instance. > > > > This patch contains the header part of the userspace communication implementation. > > Userspace can query the presence/absence of this feature in the normal way. > > It also tells the hypervisor that it is capable of handling - in whatever > > way it chooses, registrations that the hypervisor does not know how to. > > In x86, only user so far, this mechanism is implemented as generic userspace > > msr exit, that could theorectically be used to implement msr-handling in > > userspace. > > > > I am keeping the headers separate to facilitate backports to people > > who wants to backport the kernel part but not the hypervisor, or the other way around. > > > > Again the protocol is not specified. How about starting from > Documentation/kvm/api.txt so we don't have to guess? I will do that in the next version, if the idea is not shoot up completely. > > > diff --git a/include/linux/kvm.h b/include/linux/kvm.h > > index ea2dc1a..5cc4fe8 100644 > > --- a/include/linux/kvm.h > > +++ b/include/linux/kvm.h > > @@ -161,6 +161,7 @@ struct kvm_pit_config { > > #define KVM_EXIT_NMI 16 > > #define KVM_EXIT_INTERNAL_ERROR 17 > > #define KVM_EXIT_OSI 18 > > +#define KVM_EXIT_X86_MSR_OP 19 > > > > > /* > > @@ -541,6 +551,7 @@ struct kvm_ppc_pvinfo { > > #define KVM_CAP_PPC_GET_PVINFO 57 > > #define KVM_CAP_PPC_IRQ_LEVEL 58 > > #define KVM_CAP_ASYNC_PF 59 > > +#define KVM_CAP_REGISTER_MEM_AREA 60 > > These two seem completely unrelated. Thanks, will put them in the right place. -- 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