From c4fe37ae6d75ed72e6a3bde01fea053eb508274c Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 5 Jun 2020 07:41:11 -0400 Subject: [PATCH 41/42] target/s390x/kvm: Enable adapter interruption suppression again MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RH-Author: Thomas Huth Message-id: <20200605074111.2185-4-thuth@redhat.com> Patchwork-id: 97370 O-Subject: [RHEL-8.3.0 qemu-kvm PATCH 3/3] target/s390x/kvm: Enable adapter interruption suppression again Bugzilla: 1756946 RH-Acked-by: Philippe Mathieu-Daudé RH-Acked-by: Cornelia Huck RH-Acked-by: David Hildenbrand The AIS feature has been disabled late in the v2.10 development cycle since there were some issues with migration (see commit 3f2d07b3b01ea61126b - "s390x/ais: for 2.10 stable: disable ais facility"). We originally wanted to enable it again for newer machine types, but apparently we forgot to do this so far. Let's do it now for the machines that support proper CPU models. Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1756946 Signed-off-by: Thomas Huth Message-Id: <20200122101437.5069-1-thuth@redhat.com> Reviewed-by: David Hildenbrand Tested-by: Matthew Rosato Signed-off-by: Cornelia Huck (cherry picked from commit a5c8617af6919515b84256978452edf07401c45e) Signed-off-by: Danilo C. L. de Paula --- target/s390x/kvm.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index c589ef9034..0bbf8f81b0 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -377,10 +377,13 @@ int kvm_arch_init(MachineState *ms, KVMState *s) /* * The migration interface for ais was introduced with kernel 4.13 * but the capability itself had been active since 4.12. As migration - * support is considered necessary let's disable ais in the 2.10 - * machine. + * support is considered necessary, we only try to enable this for + * newer machine types if KVM_CAP_S390_AIS_MIGRATION is available. */ - /* kvm_vm_enable_cap(s, KVM_CAP_S390_AIS, 0); */ + if (cpu_model_allowed() && kvm_kernel_irqchip_allowed() && + kvm_check_extension(s, KVM_CAP_S390_AIS_MIGRATION)) { + kvm_vm_enable_cap(s, KVM_CAP_S390_AIS, 0); + } kvm_set_max_memslot_size(KVM_SLOT_MAX_BYTES); return 0; -- 2.27.0