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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html