Currently AIS support has several problems: - AIS support in KVM is reported if KVM has AIS capability. - Testing if KVM FLIC attributes for AIS are supported does not take into account if AIS is supported by KVM. - KVM report supporting the AIS FLIC features but denies their usage if the host kernel does not support the AIS feature. - Testing if the Adapter interrupt must be suppressed is done looking at the ISC and ignores the adapter properties. - Emulation of PCI devices can only be done with KVM support for AIS. - Migration of emulated devices can only be done if both side support AIS in KVM
I would like to make some modifications to the code where I think things are not handled at the right place. Therefor I propose these changes. - Use the CPU model to enable AIS in the guest, even without KVM backup - Ask KVM for AIS support in kvm_flic realize - add simm/nimm attributes to the KVM FLIC interface to support emulation and migration between hosts with and without AIS support in KVM. - Modify the zPCI VFIO realize function to refuse VFIO PCI devices without AIS support in KVM. - Modify the AIS migration to support emulation and heterogeneous hosts. Pierre Morel (5): s390x/kvm: Enable AIS from CPU model always s390x/css: Use AIS AIRQ injection only if adapter support AIS s390x/intc: Emulate Adapter Interrupt Suppression s390x/pci: Refuse to realize VFIO-PCI if AIS needed but supported s390x/intc: AIS is now always migratable hw/intc/s390_flic.c | 3 +- hw/intc/s390_flic_kvm.c | 94 ++++++++++++++++++++++++++++++++++++++----------- hw/s390x/css.c | 6 ++-- hw/s390x/s390-pci-bus.c | 12 +++++++ target/s390x/kvm.c | 1 + 5 files changed, 91 insertions(+), 25 deletions(-) -- 2.3.0