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