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. Is using KVM_[GS]ET_REGS problematic for some reason? -- error compiling committee.c: too many arguments to function -- 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