KVM for PowerPC only supports embedded cores at the moment. While it makes sense to virtualize on small machines, it's even more fun to do so on big boxes. So I figured we need KVM for PowerPC64 as well.
This patchset implements KVM support for PPC64 hosts and guest support for PPC64 and G3/G4. To really make use of this, you will also need a modified version of qemu that can deal with KVM on desktop cores. I will send out patches for those later, but want to get feedback on the kernel side first. In the meanwhile, use the qemu version from http://www.powerkvm.org/powerkvm.git which already includes all required patches to run PPC32 and PPC64 guests. Alexander Graf (23): Pass PVR in sregs Add PPC64 definitions Add PPC64 fields to vcpu structs Add asm/970_kvm.h Add common PPC64 KVM asm helpers Add 970 highmem asm code Add SLB switching code for entry/exit Add interrupt handling code Add 970.c Add 970 Host MMU handling Add 970 guest MMU Add 74xx guest MMU Add 970 specific opcode emulation Add mfdec emulation Add desktop PowerPC specific emulation Make head_64.S aware of KVM real mode code Patch SLB size Add PPC64 offsets to asm-offsets.c Export symbols for KVM module Export KVM symbols for module Include PPC64 target in buildsystem Hack in dirty logging for VGA Fix trace.h arch/powerpc/include/asm/exception.h | 2 + arch/powerpc/include/asm/kvm.h | 1 + arch/powerpc/include/asm/kvm_970.h | 131 +++++ arch/powerpc/include/asm/kvm_970_asm.h | 128 +++++ arch/powerpc/include/asm/kvm_asm.h | 39 ++ arch/powerpc/include/asm/kvm_host.h | 80 +++- arch/powerpc/include/asm/kvm_ppc.h | 1 + arch/powerpc/kernel/asm-offsets.c | 13 + arch/powerpc/kernel/exceptions-64s.S | 8 + arch/powerpc/kernel/head_64.S | 6 + arch/powerpc/kernel/ppc_ksyms.c | 3 +- arch/powerpc/kernel/time.c | 1 + arch/powerpc/kvm/74xx_mmu.c | 357 ++++++++++++ arch/powerpc/kvm/970.c | 947 ++++++++++++++++++++++++++++++++ arch/powerpc/kvm/970_emulate.c | 338 ++++++++++++ arch/powerpc/kvm/970_exports.c | 24 + arch/powerpc/kvm/970_interrupts.S | 422 ++++++++++++++ arch/powerpc/kvm/970_mmu.c | 466 ++++++++++++++++ arch/powerpc/kvm/970_mmu_host.c | 439 +++++++++++++++ arch/powerpc/kvm/970_rmhandlers.S | 128 +++++ arch/powerpc/kvm/970_slb.S | 456 +++++++++++++++ arch/powerpc/kvm/Kconfig | 17 + arch/powerpc/kvm/Makefile | 15 +- arch/powerpc/kvm/emulate.c | 43 ++- arch/powerpc/kvm/powerpc.c | 21 +- arch/powerpc/kvm/trace.h | 6 +- arch/powerpc/mm/hash_utils_64.c | 2 + arch/powerpc/mm/mmu_context_hash64.c | 4 + arch/powerpc/mm/slb.c | 15 + kernel/fork.c | 1 + 30 files changed, 4106 insertions(+), 8 deletions(-) create mode 100644 arch/powerpc/include/asm/kvm_970.h create mode 100644 arch/powerpc/include/asm/kvm_970_asm.h create mode 100644 arch/powerpc/kvm/74xx_mmu.c create mode 100644 arch/powerpc/kvm/970.c create mode 100644 arch/powerpc/kvm/970_emulate.c create mode 100644 arch/powerpc/kvm/970_exports.c create mode 100644 arch/powerpc/kvm/970_interrupts.S create mode 100644 arch/powerpc/kvm/970_mmu.c create mode 100644 arch/powerpc/kvm/970_mmu_host.c create mode 100644 arch/powerpc/kvm/970_rmhandlers.S create mode 100644 arch/powerpc/kvm/970_slb.S -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html