s390: KVM guest: virtio device support, and kvm hypercalls
authorChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 25 Mar 2008 17:47:46 +0000 (18:47 +0100)
committerAvi Kivity <avi@qumranet.com>
Sun, 27 Apr 2008 09:00:51 +0000 (12:00 +0300)
commite976a2b997fc4ad70ccc53acfe62811c4aaec851
tree55994dda8046c9220c345a69b11d849323309703
parentfa5877439d5a062d91c3abd5a690483bbdb4268e
s390: KVM guest: virtio device support, and kvm hypercalls

This patch implements kvm guest kernel support for paravirtualized devices
and contains two parts:
o a basic virtio stub using virtio_ring and external interrupts and hypercalls
o full hypercall implementation in kvm_para.h

Currently we dont have PCI on s390. Making virtio_pci usable for s390 seems
more complicated that providing an own stub. This virtio stub is similar to
the lguest one, the memory for the descriptors and the device detection is made
via additional mapped memory on top of the guest storage. We use an external
interrupt with extint code 0x2603 for host->guest notification.

The hypercall definition uses the diag instruction for issuing a hypercall. The
parameters are written in R2-R7, the hypercall number is written in R1. This is
similar to the system call ABI (svc) which can use R1 for the number and R2-R6
for the parameters.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
drivers/s390/Makefile
drivers/s390/kvm/Makefile [new file with mode: 0644]
drivers/s390/kvm/kvm_virtio.c [new file with mode: 0644]
include/asm-s390/kvm_para.h
include/asm-s390/kvm_virtio.h [new file with mode: 0644]