This patch series is the QEMU counterpart to the KVM/kernel support for guest dedicated crypto adapters. The KVM/kernel model is built on the VFIO mediated device framework and provides the infrastructure for granting exclusive guest access to crypto devices installed on the linux host. This patch series introduces a new QEMU command line option, QEMU object model and CPU model features to exploit the KVM/kernel model.
See the detailed specifications for AP virtualization provided by this patch set in docs/vfio-ap.txt for a more complete discussion of the design introduced by this patch series. v1 -> v2 Change log: =================== * Removed unnecessary S390APMatrixDevice, S390APMatrixDeviceClass * Removed ioctl to configure the AP matrix for the guest: letting the vfio_ap device driver's 'open' callback configure the AP matrix for the guest * Removed masks from object model: Unnecessary at this point because they are not currently used * Renamed: * VFIOAPMatrixDevice to VFIOAPDevice * VFIOAPMatrixDeviceClass to VFIOAPDeviceClass * APMatrixDevice to APDevice * APMatrixDeviceClass to APDeviceClass * ap-matrix.c to ap.c (in hw/vfio) * ap-matrix-device.c to ap-device.c (in hw/s390x) * ap-matrix-device.h to ap-device.h (in include/hw/s390x) * Added CPU model feature for AP facilities installed on guest and facilities features for QCI Instructions Available (STFLE.12) and AP Facilities Test facility installed (STFLE.15). Tony Krowiak (5): s390x/ap: base Adjunct Processor (AP) object s390x/vfio: ap: VFIO: linux header updates s390x/vfio: ap: Introduce VFIO AP device s390x/cpumodel: Set up CPU model for AP device support s390: doc: detailed specifications for AP virtualization default-configs/s390x-softmmu.mak | 1 + docs/vfio-ap.txt | 540 +++++++++++++++++++++++++++++++++++++ hw/s390x/Makefile.objs | 1 + hw/s390x/ap-device.c | 38 +++ hw/vfio/Makefile.objs | 1 + hw/vfio/ap.c | 176 ++++++++++++ include/hw/s390x/ap-device.h | 38 +++ include/hw/vfio/vfio-common.h | 1 + linux-headers/asm-s390/kvm.h | 1 + linux-headers/linux/vfio.h | 2 + target/s390x/cpu_features.c | 3 + target/s390x/cpu_features_def.h | 3 + target/s390x/cpu_models.c | 12 + target/s390x/gen-features.c | 3 + target/s390x/kvm.c | 6 + 15 files changed, 826 insertions(+), 0 deletions(-) create mode 100644 docs/vfio-ap.txt create mode 100644 hw/s390x/ap-device.c create mode 100644 hw/vfio/ap.c create mode 100644 include/hw/s390x/ap-device.h