From nobody Tue Apr 30 03:42:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1506433103767212.5476033433472; Tue, 26 Sep 2017 06:38:23 -0700 (PDT) Received: from localhost ([::1]:47595 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwq42-0006hF-2D for importer@patchew.org; Tue, 26 Sep 2017 09:38:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48990) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwq2T-0005pu-3M for qemu-devel@nongnu.org; Tue, 26 Sep 2017 09:36:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwq2P-0007WD-Sb for qemu-devel@nongnu.org; Tue, 26 Sep 2017 09:36:41 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:51778) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dwq2P-0007Va-Ik for qemu-devel@nongnu.org; Tue, 26 Sep 2017 09:36:37 -0400 Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v8QDZkUr139470 for ; Tue, 26 Sep 2017 09:36:33 -0400 Received: from e06smtp15.uk.ibm.com (e06smtp15.uk.ibm.com [195.75.94.111]) by mx0a-001b2d01.pphosted.com with ESMTP id 2d7mpaxeds-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Tue, 26 Sep 2017 09:36:32 -0400 Received: from localhost by e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 26 Sep 2017 14:36:29 +0100 Received: from b06cxnps3074.portsmouth.uk.ibm.com (9.149.109.194) by e06smtp15.uk.ibm.com (192.168.101.145) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 26 Sep 2017 14:36:26 +0100 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v8QDaPwn22151290; Tue, 26 Sep 2017 13:36:25 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id ABDF1A4051; Tue, 26 Sep 2017 14:32:18 +0100 (BST) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 96294A4040; Tue, 26 Sep 2017 14:32:18 +0100 (BST) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTPS; Tue, 26 Sep 2017 14:32:18 +0100 (BST) Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 25651) id 444B820F62D; Tue, 26 Sep 2017 15:36:25 +0200 (CEST) From: Christian Borntraeger To: Cornelia Huck Date: Tue, 26 Sep 2017 15:36:23 +0200 X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170926133624.155394-1-borntraeger@de.ibm.com> References: <20170926133624.155394-1-borntraeger@de.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 17092613-0020-0000-0000-000003BB39C6 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17092613-0021-0000-0000-0000424D14A3 Message-Id: <20170926133624.155394-2-borntraeger@de.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-09-26_05:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1709260197 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.156.1 Subject: [Qemu-devel] [PATCH v2 1/2] s390x/ais: enable ais when migration is available X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Halil Pasic , Yi Min Zhao , David Hildenbrand , qemu-devel , Alexander Graf , Christian Borntraeger , "Jason J . Herne" , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Instead of unconditionally enabling the KVM AIS capability in the kvm arch init function, do this in the flic realize function when we know if migration is available. This requires to initialize flic before the CPUs. Signed-off-by: Christian Borntraeger Reviewed-by: David Hildenbrand --- hw/intc/s390_flic.c | 8 ++------ hw/intc/s390_flic_kvm.c | 16 +++++++++++----- hw/s390x/css.c | 4 ++-- hw/s390x/s390-virtio-ccw.c | 10 +++++++--- include/hw/s390x/s390_flic.h | 1 - target/s390x/kvm.c | 10 ++-------- 6 files changed, 24 insertions(+), 25 deletions(-) diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c index 6eaf178..9858f0e 100644 --- a/hw/intc/s390_flic.c +++ b/hw/intc/s390_flic.c @@ -1,7 +1,7 @@ /* * QEMU S390x floating interrupt controller (flic) * - * Copyright 2014 IBM Corp. + * Copyright IBM Corp. 2014, 2017 * Author(s): Jens Freimann * Cornelia Huck * @@ -136,9 +136,7 @@ static void qemu_s390_flic_reset(DeviceState *dev) =20 bool ais_needed(void *opaque) { - S390FLICState *s =3D opaque; - - return s->ais_supported; + return s390_has_feat(S390_FEAT_ADAPTER_INT_SUPPRESSION); } =20 static const VMStateDescription qemu_s390_flic_vmstate =3D { @@ -185,8 +183,6 @@ static void s390_flic_common_realize(DeviceState *dev, = Error **errp) " (%d > %d)", max_batch, ADAPTER_ROUTES_MAX_GSI); return; } - - fs->ais_supported =3D s390_has_feat(S390_FEAT_ADAPTER_INT_SUPPRESSION); } =20 static void s390_flic_class_init(ObjectClass *oc, void *data) diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c index 7ead17a..5c9d215 100644 --- a/hw/intc/s390_flic_kvm.c +++ b/hw/intc/s390_flic_kvm.c @@ -1,7 +1,7 @@ /* * QEMU S390x KVM floating interrupt controller (flic) * - * Copyright 2014 IBM Corp. + * Copyright IBM Corp. 2014, 2017 * Author(s): Jens Freimann * Cornelia Huck * @@ -164,7 +164,7 @@ static int kvm_s390_modify_ais_mode(S390FLICState *fs, = uint8_t isc, .addr =3D (uint64_t)&req, }; =20 - if (!fs->ais_supported) { + if (!s390_has_feat(S390_FEAT_ADAPTER_INT_SUPPRESSION)) { return -ENOSYS; } =20 @@ -181,7 +181,7 @@ static int kvm_s390_inject_airq(S390FLICState *fs, uint= 8_t type, .attr =3D id, }; =20 - if (!fs->ais_supported) { + if (!s390_has_feat(S390_FEAT_ADAPTER_INT_SUPPRESSION)) { return -ENOSYS; } =20 @@ -459,7 +459,7 @@ static int kvm_flic_ais_post_load(void *opaque, int ver= sion_id) * migration from a host that has AIS to a host that has no AIS. * In that case the target system will reject the migration here. */ - if (!ais_needed(flic)) { + if (!s390_has_feat(S390_FEAT_ADAPTER_INT_SUPPRESSION)) { return -ENOSYS; } =20 @@ -557,6 +557,12 @@ static void kvm_s390_flic_realize(DeviceState *dev, Er= ror **errp) test_attr.group =3D KVM_DEV_FLIC_CLEAR_IO_IRQ; flic_state->clear_io_supported =3D !ioctl(flic_state->fd, KVM_HAS_DEVICE_ATTR, test_attr= ); + /* try enable the AIS facility */ + test_attr.group =3D KVM_DEV_FLIC_AISM_ALL; + if (!ioctl(flic_state->fd, KVM_HAS_DEVICE_ATTR, test_attr)) { + kvm_vm_enable_cap(kvm_state, KVM_CAP_S390_AIS, 0); + } + return; fail: error_propagate(errp, errp_local); @@ -578,7 +584,7 @@ static void kvm_s390_flic_reset(DeviceState *dev) =20 flic_disable_wait_pfault(flic); =20 - if (fs->ais_supported) { + if (s390_has_feat(S390_FEAT_ADAPTER_INT_SUPPRESSION)) { for (isc =3D 0; isc <=3D MAX_ISC; isc++) { rc =3D kvm_s390_modify_ais_mode(fs, isc, SIC_IRQ_MODE_ALL); if (rc) { diff --git a/hw/s390x/css.c b/hw/s390x/css.c index 75d4f30..1d4bb73 100644 --- a/hw/s390x/css.c +++ b/hw/s390x/css.c @@ -1,7 +1,7 @@ /* * Channel subsystem base support. * - * Copyright 2012 IBM Corp. + * Copyright IBM Corp. 2012, 2017 * Author(s): Cornelia Huck * * This work is licensed under the terms of the GNU GPL, version 2 or (at @@ -672,7 +672,7 @@ void css_adapter_interrupt(CssIoAdapterType type, uint8= _t isc) } =20 trace_css_adapter_interrupt(isc); - if (fs->ais_supported) { + if (s390_has_feat(S390_FEAT_ADAPTER_INT_SUPPRESSION)) { if (fsc->inject_airq(fs, type, isc, adapter->flags)) { error_report("Failed to inject airq with AIS supported"); exit(1); diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index fafbc6d..98c82c2 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -1,7 +1,7 @@ /* * virtio ccw machine * - * Copyright 2012 IBM Corp. + * Copyright IBM Corp. 2012, 2017 * Copyright (c) 2009 Alexander Graf * Author(s): Cornelia Huck * @@ -279,11 +279,15 @@ static void ccw_init(MachineState *machine) s390_sclp_init(); s390_memory_init(machine->ram_size); =20 + /* + * This might also enable some KVM features like AIS, so it must + * be called before the CPU model + */ + s390_flic_init(); + /* init CPUs (incl. CPU model) early so s390_has_feature() works */ s390_init_cpus(machine); =20 - s390_flic_init(); - /* get a BUS */ css_bus =3D virtual_css_bus_init(); s390_init_ipl_dev(machine->kernel_filename, machine->kernel_cmdline, diff --git a/include/hw/s390x/s390_flic.h b/include/hw/s390x/s390_flic.h index 7aab6ef..75fd83c 100644 --- a/include/hw/s390x/s390_flic.h +++ b/include/hw/s390x/s390_flic.h @@ -44,7 +44,6 @@ typedef struct S390FLICState { SysBusDevice parent_obj; /* to limit AdapterRoutes.num_routes for compat */ uint32_t adapter_routes_max_batch; - bool ais_supported; } S390FLICState; =20 #define S390_FLIC_COMMON_CLASS(klass) \ diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index ebb75ca..9ee2ada 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -2,7 +2,7 @@ * QEMU S390x KVM implementation * * Copyright (c) 2009 Alexander Graf - * Copyright IBM Corp. 2012 + * Copyright IBM Corp. 2012, 2017 * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -311,13 +311,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) } } =20 - /* - * 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. - */ - /* kvm_vm_enable_cap(s, KVM_CAP_S390_AIS, 0); */ + /* The AIS enablement happens in the flic realize */ =20 qemu_mutex_init(&qemu_sigp_mutex); =20 --=20 2.9.4 From nobody Tue Apr 30 03:42:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1506433128596877.0460914308456; Tue, 26 Sep 2017 06:38:48 -0700 (PDT) Received: from localhost ([::1]:47596 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwq4N-0006xo-O7 for importer@patchew.org; Tue, 26 Sep 2017 09:38:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49066) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwq2o-00063d-1M for qemu-devel@nongnu.org; Tue, 26 Sep 2017 09:37:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwq2k-0007hu-RW for qemu-devel@nongnu.org; Tue, 26 Sep 2017 09:37:02 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:58702 helo=mx0a-001b2d01.pphosted.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dwq2k-0007hb-MO for qemu-devel@nongnu.org; Tue, 26 Sep 2017 09:36:58 -0400 Received: from pps.filterd (m0098413.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v8QDaeGe131179 for ; Tue, 26 Sep 2017 09:36:55 -0400 Received: from e06smtp10.uk.ibm.com (e06smtp10.uk.ibm.com [195.75.94.106]) by mx0b-001b2d01.pphosted.com with ESMTP id 2d7p8v83dk-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Tue, 26 Sep 2017 09:36:47 -0400 Received: from localhost by e06smtp10.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 26 Sep 2017 14:36:28 +0100 Received: from b06cxnps4075.portsmouth.uk.ibm.com (9.149.109.197) by e06smtp10.uk.ibm.com (192.168.101.140) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 26 Sep 2017 14:36:26 +0100 Received: from d06av22.portsmouth.uk.ibm.com (d06av22.portsmouth.uk.ibm.com [9.149.105.58]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v8QDaPQv21692512; Tue, 26 Sep 2017 13:36:25 GMT Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 298404C044; Tue, 26 Sep 2017 14:32:42 +0100 (BST) Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 13D354C040; Tue, 26 Sep 2017 14:32:42 +0100 (BST) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9]) by d06av22.portsmouth.uk.ibm.com (Postfix) with ESMTPS; Tue, 26 Sep 2017 14:32:42 +0100 (BST) Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 25651) id 83C6020F62C; Tue, 26 Sep 2017 15:36:25 +0200 (CEST) From: Christian Borntraeger To: Cornelia Huck Date: Tue, 26 Sep 2017 15:36:24 +0200 X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170926133624.155394-1-borntraeger@de.ibm.com> References: <20170926133624.155394-1-borntraeger@de.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 17092613-0040-0000-0000-000003DD385B X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17092613-0041-0000-0000-000025DE829E Message-Id: <20170926133624.155394-3-borntraeger@de.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-09-26_05:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1709260197 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.158.5 Subject: [Qemu-devel] [PATCH v2 2/2] s390x/ais: disable ais for compat machines X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Halil Pasic , Yi Min Zhao , David Hildenbrand , qemu-devel , Alexander Graf , Christian Borntraeger , "Jason J . Herne" , "Dr. David Alan Gilbert" , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" With newer kernels that do support the ais feature (4.13) a qemu 2.11 will not only enable the ais feature for the 2.11 machine, but also for a <=3D2.10 compat machine. As this feature is not available in QEMU <=3D2.9 (and QEMU 2.10.1), this guest will fail to migrate back to an older qemu like 2.9 with: _snip_ error while loading state for instance 0x0 of device 's390-flic' _snip_ making the whole compat machine dis-functional. As a permanent fix, we need to fence the ais feature for machines <=3D 2.10 Due to ais being enabled on 2.10.0 (fixed in 2.10.1) this will prevent migration of ais-enabled guests from 2.10.0 with _snip_ qemu-system-s390x: Failed to load s390-flic/ais:tmp qemu-system-s390x: error while loading state for instance 0x0 of device 's3= 90-flic' qemu-system-s390x: load of migration failed: Function not implemented _snip_ Signed-off-by: Christian Borntraeger Cc: Yi Min Zhao Cc: Dr. David Alan Gilbert --- hw/intc/s390_flic_kvm.c | 4 +++- hw/s390x/s390-virtio-ccw.c | 10 ++++++++++ include/hw/s390x/s390-virtio-ccw.h | 3 +++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c index 5c9d215..2e40968 100644 --- a/hw/intc/s390_flic_kvm.c +++ b/hw/intc/s390_flic_kvm.c @@ -22,6 +22,7 @@ #include "hw/s390x/s390_flic.h" #include "hw/s390x/adapter.h" #include "hw/s390x/css.h" +#include "hw/s390x/s390-virtio-ccw.h" #include "trace.h" =20 #define FLIC_SAVE_INITIAL_SIZE getpagesize() @@ -559,7 +560,8 @@ static void kvm_s390_flic_realize(DeviceState *dev, Err= or **errp) KVM_HAS_DEVICE_ATTR, test_attr= ); /* try enable the AIS facility */ test_attr.group =3D KVM_DEV_FLIC_AISM_ALL; - if (!ioctl(flic_state->fd, KVM_HAS_DEVICE_ATTR, test_attr)) { + if (ais_allowed() && + !ioctl(flic_state->fd, KVM_HAS_DEVICE_ATTR, test_attr)) { kvm_vm_enable_cap(kvm_state, KVM_CAP_S390_AIS, 0); } =20 diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 98c82c2..41b770a 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -435,6 +435,7 @@ static void ccw_machine_class_init(ObjectClass *oc, voi= d *data) s390mc->cpu_model_allowed =3D true; s390mc->css_migration_enabled =3D true; s390mc->gs_allowed =3D true; + s390mc->ais_allowed =3D true; mc->init =3D ccw_init; mc->reset =3D s390_machine_reset; mc->hot_add_cpu =3D s390_hot_add_cpu; @@ -519,6 +520,11 @@ bool gs_allowed(void) return get_machine_class()->gs_allowed; } =20 +bool ais_allowed(void) +{ + return get_machine_class()->ais_allowed; +} + static char *machine_get_loadparm(Object *obj, Error **errp) { S390CcwMachineState *ms =3D S390_CCW_MACHINE(obj); @@ -742,6 +748,10 @@ static void ccw_machine_2_10_instance_options(MachineS= tate *machine) =20 static void ccw_machine_2_10_class_options(MachineClass *mc) { + S390CcwMachineClass *s390mc =3D S390_MACHINE_CLASS(mc); + + s390mc->ais_allowed =3D false; + ccw_machine_2_11_class_options(mc); SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_10); } diff --git a/include/hw/s390x/s390-virtio-ccw.h b/include/hw/s390x/s390-vir= tio-ccw.h index a9a90c2..d25a98f 100644 --- a/include/hw/s390x/s390-virtio-ccw.h +++ b/include/hw/s390x/s390-virtio-ccw.h @@ -41,6 +41,7 @@ typedef struct S390CcwMachineClass { bool cpu_model_allowed; bool css_migration_enabled; bool gs_allowed; + bool ais_allowed; } S390CcwMachineClass; =20 /* runtime-instrumentation allowed by the machine */ @@ -49,6 +50,8 @@ bool ri_allowed(void); bool cpu_model_allowed(void); /* guarded-storage allowed by the machine */ bool gs_allowed(void); +/* ais allowed by the machine */ +bool ais_allowed(void); =20 /** * Returns true if (vmstate based) migration of the channel subsystem --=20 2.9.4