On Wed, Jun 29, 2011 at 08:41:03PM +1000, Paul Mackerras wrote: > Documentation/virtual/kvm/api.txt | 35 +++++++++++++++++++++++++++++++++++ > arch/powerpc/include/asm/kvm.h | 15 +++++++++++++++ > arch/powerpc/include/asm/kvm_host.h | 1 + > arch/powerpc/kvm/powerpc.c | 28 ++++++++++++++++++++++++++++ > include/linux/kvm.h | 1 + > 5 files changed, 80 insertions(+), 0 deletions(-) > >diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt >index b0e4b9c..3ab012c 100644 >--- a/Documentation/virtual/kvm/api.txt >+++ b/Documentation/virtual/kvm/api.txt >@@ -1430,6 +1430,41 @@ is supported; 2 if the processor requires all virtual machines to have > an RMA, or 1 if the processor can use an RMA but doesn't require it, > because it supports the Virtual RMA (VRMA) facility. > >+4.64 KVM_PPC_SET_PLATFORM >+ >+Capability: none >+Architectures: powerpc >+Type: vm ioctl >+Parameters: struct kvm_ppc_set_platform (in) >+Returns: 0, or -1 on error >+ >+This is used by userspace to tell KVM what sort of platform it should >+emulate. The return value of the ioctl tells userspace whether the >+emulation it is requesting is supported by KVM. >+ >+struct kvm_ppc_set_platform { >+ __u16 platform; /* defines the OS/hypervisor ABI */ >+ __u16 guest_arch; /* e.g. decimal 206 for v2.06 */ >+ __u32 flags; >+}; >+ >+/* Values for platform */ >+#define KVM_PPC_PV_NONE 0 /* bare-metal, non-paravirtualized */ >+#define KVM_PPC_PV_KVM 1 /* as defined in kvm_para.h */ >+#define KVM_PPC_PV_SPAPR 2 /* IBM Server PAPR (a la PowerVM) */ >+ >+/* Values for flags */ >+#define KVM_PPC_CROSS_ARCH 1 /* guest architecture != host */ >+ >+The KVM_PPC_CROSS_ARCH bit being 1 indicates that the guest is of a >+sufficiently different architecture to the host that the guest cannot >+be permitted to use supervisor mode. For example, if the host is a >+64-bit machine and the guest is a 32-bit machine, then this bit should >+be set. This makes me wonder if a similar thing might eventually be usable for running an i686 or x32 guest on an x86_64 KVM host. I have no idea if that is even theoretically possible, but if it is it might be better to rename the ioctl to be architecture agnostic. josh -- 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