The following series implements partial KVM support for ARM processors, specifically on the Cortex A-15 platform. The patch set is broken up into a logical set of patches, the first one containing a skeleton of files, makefile changes, the basic user space interface and KVM architecture specific stubs. Subsequent patches implement parts of the system. This patch set is still not functional and heavily being developed, but I send these out early to give people a chance to comment and follow the design at an early state. Further, I did not meticulously go over the code with respect to commenting, but will keep up with this for next release version. Changes since v2: - Performs world-switch code - Maps guest memory using 2nd stage translation - Emulates co-processor 15 instructions - Forwards I/O faults to QEMU. --- Christoffer Dall (8): ARM: KVM: Initial skeleton to compile KVM support ARM: KVM: Hypervisor identity mapping ARM: KVM: Add hypervisor inititalization ARM: KVM: Memory virtualization setup ARM: KVM: World-switch implementation ARM: KVM: Emulation framework and CP15 emulation ARM: KVM: Handle guest faults in KVM ARM: KVM: Handle I/O aborts arch/arm/Kconfig | 2 arch/arm/Makefile | 1 arch/arm/include/asm/kvm.h | 65 +++ arch/arm/include/asm/kvm_arm.h | 127 +++++ arch/arm/include/asm/kvm_asm.h | 40 ++ arch/arm/include/asm/kvm_emulate.h | 96 ++++ arch/arm/include/asm/kvm_host.h | 120 +++++ arch/arm/include/asm/kvm_mmu.h | 46 ++ arch/arm/include/asm/kvm_para.h | 9 arch/arm/include/asm/pgtable-3level-hwdef.h | 6 arch/arm/include/asm/pgtable-3level.h | 9 arch/arm/include/asm/pgtable.h | 14 + arch/arm/include/asm/unified.h | 12 arch/arm/kernel/asm-offsets.c | 26 + arch/arm/kernel/entry-armv.S | 1 arch/arm/kvm/Kconfig | 44 ++ arch/arm/kvm/Makefile | 13 + arch/arm/kvm/arm.c | 670 +++++++++++++++++++++++++++ arch/arm/kvm/arm_emulate.c | 236 ++++++++++ arch/arm/kvm/arm_guest.c | 142 ++++++ arch/arm/kvm/arm_interrupts.S | 520 +++++++++++++++++++++ arch/arm/kvm/arm_mmu.c | 439 ++++++++++++++++++ arch/arm/kvm/trace.c | 436 ++++++++++++++++++ arch/arm/kvm/trace.h | 108 ++++ arch/arm/mach-vexpress/Kconfig | 1 arch/arm/mm/Kconfig | 7 arch/arm/mm/idmap.c | 47 ++ arch/arm/mm/mmu.c | 3 include/linux/kvm.h | 1 29 files changed, 3240 insertions(+), 1 deletions(-) create mode 100644 arch/arm/include/asm/kvm.h create mode 100644 arch/arm/include/asm/kvm_arm.h create mode 100644 arch/arm/include/asm/kvm_asm.h create mode 100644 arch/arm/include/asm/kvm_emulate.h create mode 100644 arch/arm/include/asm/kvm_host.h create mode 100644 arch/arm/include/asm/kvm_mmu.h create mode 100644 arch/arm/include/asm/kvm_para.h create mode 100644 arch/arm/kvm/Kconfig create mode 100644 arch/arm/kvm/Makefile create mode 100644 arch/arm/kvm/arm.c create mode 100644 arch/arm/kvm/arm_emulate.c create mode 100644 arch/arm/kvm/arm_guest.c create mode 100644 arch/arm/kvm/arm_interrupts.S create mode 100644 arch/arm/kvm/arm_mmu.c create mode 100644 arch/arm/kvm/trace.c create mode 100644 arch/arm/kvm/trace.h -- -- 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