[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v1 0/5][RFC] Refactoring of AIS support
From: |
Pierre Morel |
Subject: |
[Qemu-devel] [PATCH v1 0/5][RFC] Refactoring of AIS support |
Date: |
Wed, 4 Oct 2017 15:49:34 +0200 |
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
- [Qemu-devel] [PATCH v1 0/5][RFC] Refactoring of AIS support,
Pierre Morel <=