On 09.03.2010, at 14:00, Avi Kivity wrote: > On 03/08/2010 08:03 PM, Alexander Graf wrote: >> MOL uses its own hypercall interface to call back into userspace when >> the guest wants to do something. >> >> So let's implement that as an exit reason, specify it with a CAP and >> only really use it when userspace wants us to. >> >> The only user of it so far is MOL. >> >> Signed-off-by: Alexander Graf<agraf@xxxxxxx> >> >> --- >> >> v1 -> v2: >> >> - Add documentation for OSI exit struct >> --- >> Documentation/kvm/api.txt | 13 +++++++++++++ >> arch/powerpc/include/asm/kvm_book3s.h | 5 +++++ >> arch/powerpc/include/asm/kvm_host.h | 2 ++ >> arch/powerpc/kvm/book3s.c | 24 ++++++++++++++++++------ >> arch/powerpc/kvm/powerpc.c | 12 ++++++++++++ >> include/linux/kvm.h | 6 ++++++ >> 6 files changed, 56 insertions(+), 6 deletions(-) >> >> diff --git a/Documentation/kvm/api.txt b/Documentation/kvm/api.txt >> index 6a19ab6..b2129e8 100644 >> --- a/Documentation/kvm/api.txt >> +++ b/Documentation/kvm/api.txt >> @@ -932,6 +932,19 @@ s390 specific. >> >> powerpc specific. >> >> + /* KVM_EXIT_OSI */ >> + struct { >> + __u64 gprs[32]; >> + } osi; >> + >> +MOL uses a special hypercall interface it calls 'OSI'. To enable it, we catch >> +hypercalls and exit with this exit struct that contains all the guest gprs. >> + >> +If exit_reason is KVM_EXIT_OSI, then the vcpu has triggered such a hypercall. >> +Userspace can now handle the hypercall and when it's done modify the gprs as >> +necessary. Upon guest entry all guest GPRs will then be replaced by the values >> +in this struct. >> + >> > > That's migration unsafe. There may not be next guest entry on this host. It's as unsafe as MMIO then. > Is using KVM_[GS]ET_REGS problematic for some reason? It's two additional ioctls for no good reason. We know the interface, so we can model towards it. Alex-- 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