• Christian Borntraeger's avatar
    s390: KVM guest: virtio device support, and kvm hypercalls · e976a2b9
    Christian Borntraeger authored
    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: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Acked-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: default avatarCarsten Otte <cotte@de.ibm.com>
    Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
    e976a2b9
kvm_virtio.c 7.63 KB