KVM: s390: arch backend for the kvm kernel module
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 25 Mar 2008 17:47:20 +0000 (18:47 +0100)
committerAvi Kivity <avi@qumranet.com>
Sun, 27 Apr 2008 09:00:42 +0000 (12:00 +0300)
commitb0c632db637d68ad39d9f97f452ce176253f5f4e
tree770d68c17cbcabc1543d1e9125669130fcf4fee4
parent8a88ac6183975c73c65b45f365f6f3b875c1348b
KVM: s390: arch backend for the kvm kernel module

This patch contains the port of Qumranet's kvm kernel module to IBM zSeries
 (aka s390x, mainframe) architecture. It uses the mainframe's virtualization
instruction SIE to run virtual machines with up to 64 virtual CPUs each.
This port is only usable on 64bit host kernels, and can only run 64bit guest
kernels. However, running 31bit applications in guest userspace is possible.

The following source files are introduced by this patch
arch/s390/kvm/kvm-s390.c    similar to arch/x86/kvm/x86.c, this implements all
                            arch callbacks for kvm. __vcpu_run calls back into
                            sie64a to enter the guest machine context
arch/s390/kvm/sie64a.S      assembler function sie64a, which enters guest
                            context via SIE, and switches world before and after                            that
include/asm-s390/kvm_host.h contains all vital data structures needed to run
                            virtual machines on the mainframe
include/asm-s390/kvm.h      defines kvm_regs and friends for user access to
                            guest register content
arch/s390/kvm/gaccess.h     functions similar to uaccess to access guest memory
arch/s390/kvm/kvm-s390.h    header file for kvm-s390 internals, extended by
                            later patches

Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
12 files changed:
arch/s390/Makefile
arch/s390/kernel/vtime.c
arch/s390/kvm/Makefile [new file with mode: 0644]
arch/s390/kvm/gaccess.h [new file with mode: 0644]
arch/s390/kvm/kvm-s390.c [new file with mode: 0644]
arch/s390/kvm/kvm-s390.h [new file with mode: 0644]
arch/s390/kvm/sie64a.S [new file with mode: 0644]
include/asm-s390/Kbuild
include/asm-s390/kvm.h
include/asm-s390/kvm_host.h [new file with mode: 0644]
include/asm-s390/kvm_para.h [new file with mode: 0644]
include/linux/kvm.h