From nobody Thu May 15 08:54:32 2025
Delivered-To: importer@patchew.org
Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28
as permitted sender) client-ip=209.132.183.28;
envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com;
Authentication-Results: mx.zohomail.com;
spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as
permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com
Return-Path:
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by
mx.zohomail.com
with SMTPS id 15117352684821022.2109552283093;
Sun, 26 Nov 2017 14:27:48 -0800 (PST)
Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com
[10.5.11.11])
(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
(No client certificate requested)
by mx1.redhat.com (Postfix) with ESMTPS id 2CB6E6147B;
Sun, 26 Nov 2017 22:27:42 +0000 (UTC)
Received: from colo-mx.corp.redhat.com
(colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21])
by smtp.corp.redhat.com (Postfix) with ESMTPS id 08C756055F;
Sun, 26 Nov 2017 22:27:42 +0000 (UTC)
Received: from lists01.pubmisc.prod.ext.phx2.redhat.com
(lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33])
by colo-mx.corp.redhat.com (Postfix) with ESMTP id C8BC73D395;
Sun, 26 Nov 2017 22:27:41 +0000 (UTC)
Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com
[10.5.11.13])
by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP
id vAQMQToo028411 for ;
Sun, 26 Nov 2017 17:26:29 -0500
Received: by smtp.corp.redhat.com (Postfix)
id A840418ED1; Sun, 26 Nov 2017 22:26:29 +0000 (UTC)
Received: from inaba.usersys.redhat.com (ovpn-204-63.brq.redhat.com
[10.40.204.63])
by smtp.corp.redhat.com (Postfix) with ESMTPS id 6E91560BE9
for ; Sun, 26 Nov 2017 22:26:28 +0000 (UTC)
From: Andrea Bolognani
To: libvir-list@redhat.com
Date: Sun, 26 Nov 2017 23:25:39 +0100
Message-Id: <20171126222549.13681-19-abologna@redhat.com>
In-Reply-To: <20171126222549.13681-1-abologna@redhat.com>
References: <20171126222549.13681-1-abologna@redhat.com>
X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13
X-loop: libvir-list@redhat.com
Subject: [libvirt] [PATCH v3 18/28] conf: Add target type and model for
spapr-vty
X-BeenThere: libvir-list@redhat.com
X-Mailman-Version: 2.1.12
Precedence: junk
List-Id: Development discussions about the libvirt library & tools
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Sender: libvir-list-bounces@redhat.com
Errors-To: libvir-list-bounces@redhat.com
X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11
X-Greylist: Sender IP whitelisted,
not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]);
Sun, 26 Nov 2017 22:27:47 +0000 (UTC)
X-ZohoMail: RSF_0 Z_629925259 SPT_0
Content-Type: text/plain; charset="utf-8"
We can finally introduce a specific target model for the spapr-vty
device used by pSeries guests, which means isa-serial will no longer
show up to confuse users.
We make sure migration works in both directions by interpreting the
isa-serial target type, or the lack of target type, appropriately
when parsing the guest XML, and skipping the newly-introduced type
when formatting if for migration. We also verify that spapr-vty is
not used for non-pSeries guests and add a bunch of test cases.
This commit is best viewed with 'git show -w'.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=3D1511421
Signed-off-by: Andrea Bolognani
Reviewed-by: Pavel Hrdina
---
docs/formatdomain.html.in | 9 ++-
docs/schemas/domaincommon.rng | 2 +
src/conf/domain_conf.c | 6 +-
src/conf/domain_conf.h | 2 +
src/qemu/qemu_command.c | 67 +++++++++---------=
---
src/qemu/qemu_domain.c | 69 ++++++++++++++++++=
----
src/qemu/qemu_domain_address.c | 1 +
.../qemuxml2argv-pseries-basic.args | 2 +-
.../qemuxml2argv-pseries-console-native.args | 1 +
.../qemuxml2argv-pseries-console-native.xml | 17 ++++++
...gs =3D> qemuxml2argv-pseries-console-virtio.args} | 10 ++--
.../qemuxml2argv-pseries-console-virtio.xml | 19 ++++++
.../qemuxml2argv-pseries-cpu-compat-power9.args | 2 +-
.../qemuxml2argv-pseries-cpu-compat.args | 2 +-
.../qemuxml2argv-pseries-cpu-exact.args | 2 +-
.../qemuxml2argv-pseries-cpu-le.args | 2 +-
.../qemuxml2argv-pseries-panic-missing.args | 2 +-
.../qemuxml2argv-pseries-panic-no-address.args | 2 +-
...qemuxml2argv-pseries-serial+console-native.args | 1 +
.../qemuxml2argv-pseries-serial+console-native.xml | 18 ++++++
.../qemuxml2argv-pseries-serial-compat.args | 1 +
.../qemuxml2argv-pseries-serial-compat.xml | 19 ++++++
...qemuxml2argv-pseries-serial-invalid-machine.xml | 19 ++++++
...rgs =3D> qemuxml2argv-pseries-serial-native.args} | 7 +--
.../qemuxml2argv-pseries-serial-native.xml | 16 +++++
.../qemuxml2argv-pseries-usb-default.args | 2 +-
.../qemuxml2argv-pseries-usb-kbd.args | 2 +-
.../qemuxml2argv-pseries-usb-multi.args | 2 +-
.../qemuxml2argv-pseries-vio-user-assigned.args | 4 +-
.../qemuxml2argvdata/qemuxml2argv-pseries-vio.args | 4 +-
tests/qemuxml2argvtest.c | 16 +++++
.../qemuxml2xmlout-panic-pseries.xml | 4 +-
.../qemuxml2xmlout-pseries-console-native.xml | 1 +
...l =3D> qemuxml2xmlout-pseries-console-virtio.xml} | 18 ++----
.../qemuxml2xmlout-pseries-cpu-compat-power9.xml | 4 +-
.../qemuxml2xmlout-pseries-cpu-compat.xml | 4 +-
.../qemuxml2xmlout-pseries-cpu-exact.xml | 4 +-
.../qemuxml2xmlout-pseries-panic-missing.xml | 4 +-
.../qemuxml2xmlout-pseries-panic-no-address.xml | 4 +-
...emuxml2xmlout-pseries-serial+console-native.xml | 1 +
.../qemuxml2xmlout-pseries-serial-compat.xml | 1 +
...ml =3D> qemuxml2xmlout-pseries-serial-native.xml} | 10 ++--
tests/qemuxml2xmltest.c | 15 +++++
43 files changed, 291 insertions(+), 107 deletions(-)
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-pseries-console-nat=
ive.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-console-nat=
ive.xml
copy tests/qemuxml2argvdata/{qemuxml2argv-pseries-basic.args =3D> qemuxml2=
argv-pseries-console-virtio.args} (59%)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-console-vir=
tio.xml
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-pseries-serial+cons=
ole-native.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-serial+cons=
ole-native.xml
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-comp=
at.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-comp=
at.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-inva=
lid-machine.xml
copy tests/qemuxml2argvdata/{qemuxml2argv-pseries-basic.args =3D> qemuxml2=
argv-pseries-serial-native.args} (70%)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-nati=
ve.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-console=
-native.xml
copy tests/qemuxml2xmloutdata/{qemuxml2xmlout-panic-pseries.xml =3D> qemux=
ml2xmlout-pseries-console-virtio.xml} (71%)
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-serial+=
console-native.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-serial-=
compat.xml
copy tests/qemuxml2xmloutdata/{qemuxml2xmlout-panic-pseries.xml =3D> qemux=
ml2xmlout-pseries-serial-native.xml} (79%)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 3126d6ed1..222504a06 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -6546,7 +6546,10 @@ qemu-kvm -net nic,model=3D? /dev/null
since 1.0.2, isa-serial
(u=
sable
on x86 machine types),
usb-serial
(usable whenever USB support is available)
- and pci-serial
(usable whenever PCI support is availabl=
e).
+ and pci-serial
(usable whenever PCI support is availabl=
e);
+ since 3.10.0,
+ spapr-vio-serial
(usable with ppc64/pSeries guests)
+ is available as well.
=20
@@ -6556,7 +6559,9 @@ qemu-kvm -net nic,model=3D? /dev/null
isa-serial
(usable with the isa-serial
tar=
get
type); usb-serial
(usable with the usb-serial
target type); pci-serial
- (usable with the pci-serial
target type).
+ (usable with the pci-serial
target type);
+ spapr-vty
(usable with the spapr-vio-serial
+ target type).
=20
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index fbba092d1..1f6d25e1b 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -3585,6 +3585,7 @@
isa-serial
usb-serial
pci-serial
+ spapr-vio-serial
@@ -3596,6 +3597,7 @@
isa-serial
usb-serial
pci-serial
+ spapr-vty
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 5df5f3aae..62d54560e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -451,7 +451,9 @@ VIR_ENUM_IMPL(virDomainChrSerialTarget,
"none",
"isa-serial",
"usb-serial",
- "pci-serial")
+ "pci-serial",
+ "spapr-vio-serial",
+);
=20
VIR_ENUM_IMPL(virDomainChrChannelTarget,
VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_LAST,
@@ -478,6 +480,7 @@ VIR_ENUM_IMPL(virDomainChrSerialTargetModel,
"isa-serial",
"usb-serial",
"pci-serial",
+ "spapr-vty",
);
=20
VIR_ENUM_IMPL(virDomainChrDevice, VIR_DOMAIN_CHR_DEVICE_TYPE_LAST,
@@ -4057,6 +4060,7 @@ virDomainDefAddConsoleCompat(virDomainDefPtr def)
=20
switch ((virDomainChrSerialTargetType) def->serials[0]->targetType=
) {
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_ISA:
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_SPAPR_VIO:
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_NONE: {
=20
/* Create a stub console to match the serial port.
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 7895dea55..35f5c63c2 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1081,6 +1081,7 @@ typedef enum {
VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_ISA,
VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_USB,
VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_PCI,
+ VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_SPAPR_VIO,
=20
VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_LAST
} virDomainChrSerialTargetType;
@@ -1113,6 +1114,7 @@ typedef enum {
VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_ISA_SERIAL,
VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_USB_SERIAL,
VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_PCI_SERIAL,
+ VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SPAPR_VTY,
=20
VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_LAST
} virDomainChrSerialTargetModel;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 53b0e6841..ad182bf15 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -10360,6 +10360,8 @@ qemuChrSerialTargetModelToCaps(virDomainChrSerialTa=
rgetModel targetModel)
return QEMU_CAPS_DEVICE_USB_SERIAL;
case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_PCI_SERIAL:
return QEMU_CAPS_DEVICE_PCI_SERIAL;
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SPAPR_VTY:
+ return QEMU_CAPS_DEVICE_SPAPR_VTY;
case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_ISA_SERIAL:
case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_NONE:
case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_LAST:
@@ -10382,52 +10384,39 @@ qemuBuildSerialChrDeviceStr(char **deviceStr,
virBuffer cmd =3D VIR_BUFFER_INITIALIZER;
virQEMUCapsFlags caps;
=20
- if (qemuDomainIsPSeries(def)) {
- if (serial->deviceType =3D=3D VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL &&
- serial->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRV=
IO) {
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SPAPR_VTY)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("spapr-vty not supported in this QEMU bin=
ary"));
- goto error;
- }
-
- virBufferAsprintf(&cmd, "spapr-vty,chardev=3Dchar%s",
- serial->info.alias);
- }
- } else {
- switch ((virDomainChrSerialTargetModel) serial->targetModel) {
- case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_USB_SERIAL:
- case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_PCI_SERIAL:
-
- caps =3D qemuChrSerialTargetModelToCaps(serial->targetModel);
-
- if (!virQEMUCapsGet(qemuCaps, caps)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("'%s' is not supported in this QEMU binar=
y"),
- virDomainChrSerialTargetModelTypeToString(s=
erial->targetModel));
- goto error;
- }
- break;
+ switch ((virDomainChrSerialTargetModel) serial->targetModel) {
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_USB_SERIAL:
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_PCI_SERIAL:
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SPAPR_VTY:
=20
- case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_ISA_SERIAL:
- break;
+ caps =3D qemuChrSerialTargetModelToCaps(serial->targetModel);
=20
- case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_NONE:
- case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_LAST:
- /* Except from _LAST, which is just a guard value and will nev=
er
- * be used, all of the above are platform devices, which means
- * qemuBuildSerialCommandLine() will have taken the appropriate
- * branch and we will not have ended up here. */
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("Invalid target model for serial device"));
+ if (!virQEMUCapsGet(qemuCaps, caps)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("'%s' is not supported in this QEMU binary"),
+ virDomainChrSerialTargetModelTypeToString(seria=
l->targetModel));
goto error;
}
+ break;
=20
- virBufferAsprintf(&cmd, "%s,chardev=3Dchar%s,id=3D%s",
- virDomainChrSerialTargetModelTypeToString(serial=
->targetModel),
- serial->info.alias, serial->info.alias);
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_ISA_SERIAL:
+ break;
+
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_NONE:
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_LAST:
+ /* Except from _LAST, which is just a guard value and will never
+ * be used, all of the above are platform devices, which means
+ * qemuBuildSerialCommandLine() will have taken the appropriate
+ * branch and we will not have ended up here. */
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("Invalid target model for serial device"));
+ goto error;
}
=20
+ virBufferAsprintf(&cmd, "%s,chardev=3Dchar%s,id=3D%s",
+ virDomainChrSerialTargetModelTypeToString(serial->ta=
rgetModel),
+ serial->info.alias, serial->info.alias);
+
if (qemuBuildDeviceAddressStr(&cmd, def, &serial->info, qemuCaps) < 0)
goto error;
=20
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 0b033f496..d8ab6ed52 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -3470,6 +3470,8 @@ qemuDomainChrSerialTargetTypeToAddressType(int target=
Type)
return VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB;
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_PCI:
return VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_SPAPR_VIO:
+ return VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO;
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_LAST:
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_NONE:
break;
@@ -3489,6 +3491,8 @@ qemuDomainChrSerialTargetModelToTargetType(int target=
Model)
return VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_USB;
case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_PCI_SERIAL:
return VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_PCI;
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SPAPR_VTY:
+ return VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_SPAPR_VIO;
case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_NONE:
case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_LAST:
break;
@@ -3499,8 +3503,7 @@ qemuDomainChrSerialTargetModelToTargetType(int target=
Model)
=20
=20
static int
-qemuDomainChrTargetDefValidate(const virDomainDef *def,
- const virDomainChrDef *chr)
+qemuDomainChrTargetDefValidate(const virDomainChrDef *chr)
{
int expected;
=20
@@ -3512,11 +3515,7 @@ qemuDomainChrTargetDefValidate(const virDomainDef *d=
ef,
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_ISA:
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_USB:
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_PCI:
-
- /* Hack required until we have a proper type for pSeries
- * serial consoles */
- if (qemuDomainIsPSeries(def))
- return 0;
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_SPAPR_VIO:
=20
expected =3D qemuDomainChrSerialTargetTypeToAddressType(chr->t=
argetType);
=20
@@ -3540,6 +3539,7 @@ qemuDomainChrTargetDefValidate(const virDomainDef *de=
f,
case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_ISA_SERIAL:
case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_USB_SERIAL:
case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_PCI_SERIAL:
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SPAPR_VTY:
=20
expected =3D qemuDomainChrSerialTargetModelToTargetType(chr->t=
argetModel);
=20
@@ -3577,7 +3577,7 @@ qemuDomainChrDefValidate(const virDomainChrDef *dev,
if (qemuDomainChrSourceDefValidate(dev->source) < 0)
return -1;
=20
- if (qemuDomainChrTargetDefValidate(def, dev) < 0)
+ if (qemuDomainChrTargetDefValidate(dev) < 0)
return -1;
=20
if (dev->deviceType =3D=3D VIR_DOMAIN_CHR_DEVICE_TYPE_PARALLEL &&
@@ -3587,6 +3587,26 @@ qemuDomainChrDefValidate(const virDomainChrDef *dev,
return -1;
}
=20
+ if (dev->deviceType =3D=3D VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL) {
+ bool isCompatible =3D true;
+
+ if (!qemuDomainIsPSeries(def) &&
+ (dev->targetType =3D=3D VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_SPAP=
R_VIO ||
+ dev->targetModel =3D=3D VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SP=
APR_VTY)) {
+ isCompatible =3D false;
+ }
+
+ if (!isCompatible) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Serial device with target type '%s' and "
+ "target model '%s' not compatible with guest "
+ "architecture or machine type"),
+ virDomainChrSerialTargetTypeToString(dev->targe=
tType),
+ virDomainChrSerialTargetModelTypeToString(dev->=
targetModel));
+ return -1;
+ }
+ }
+
return 0;
}
=20
@@ -4226,10 +4246,7 @@ qemuDomainChrDefPostParse(virDomainChrDefPtr chr,
if (ARCH_IS_X86(def->os.arch)) {
chr->targetType =3D VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_ISA;
} else if (qemuDomainIsPSeries(def)) {
- /* Setting TYPE_ISA here is just a temporary hack to reduce te=
st
- * suite churn. Later on we will have a proper serial type for
- * pSeries and this line will be updated accordingly. */
- chr->targetType =3D VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_ISA;
+ chr->targetType =3D VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_SPAPR_VI=
O;
}
}
=20
@@ -4246,6 +4263,9 @@ qemuDomainChrDefPostParse(virDomainChrDefPtr chr,
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_PCI:
chr->targetModel =3D VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_PCI_SE=
RIAL;
break;
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_SPAPR_VIO:
+ chr->targetModel =3D VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SPAPR_=
VTY;
+ break;
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_NONE:
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_LAST:
/* Nothing to do */
@@ -5151,6 +5171,31 @@ qemuDomainDefFormatBufInternal(virQEMUDriverPtr driv=
er,
goto cleanup;
}
=20
+ for (i =3D 0; i < def->nserials; i++) {
+ virDomainChrDefPtr serial =3D def->serials[i];
+
+ /* Historically, the native console type for some machine types
+ * was not set at all, which means it defaulted to ISA even
+ * though that was not even remotely accurate. To ensure migra=
tion
+ * towards older libvirt versions works for such guests, we sw=
itch
+ * it back to the default here */
+ if (flags & VIR_DOMAIN_XML_MIGRATABLE) {
+ switch ((virDomainChrSerialTargetType) serial->targetType)=
{
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_SPAPR_VIO:
+ serial->targetType =3D VIR_DOMAIN_CHR_SERIAL_TARGET_TY=
PE_NONE;
+ serial->targetModel =3D VIR_DOMAIN_CHR_SERIAL_TARGET_M=
ODEL_NONE;
+ break;
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_ISA:
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_PCI:
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_USB:
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_NONE:
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_LAST:
+ /* Nothing to do */
+ break;
+ }
+ }
+ }
+
/* Replace the CPU definition updated according to QEMU with the o=
ne
* used for starting the domain. The updated def will be sent
* separately for backward compatibility.
diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c
index 989c0e6c9..2319e503e 100644
--- a/src/qemu/qemu_domain_address.c
+++ b/src/qemu/qemu_domain_address.c
@@ -782,6 +782,7 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDevic=
eDefPtr dev,
=20
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_ISA:
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_USB:
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_SPAPR_VIO:
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_NONE:
case VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_LAST:
return 0;
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-basic.args b/tests=
/qemuxml2argvdata/qemuxml2argv-pseries-basic.args
index 97a7057ba..789d9f679 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-basic.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-basic.args
@@ -20,4 +20,4 @@ server,nowait \
-boot c \
-usb \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-console-native.arg=
s b/tests/qemuxml2argvdata/qemuxml2argv-pseries-console-native.args
new file mode 120000
index 000000000..d6c830ecd
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-console-native.args
@@ -0,0 +1 @@
+qemuxml2argv-pseries-serial-native.args
\ No newline at end of file
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-console-native.xml=
b/tests/qemuxml2argvdata/qemuxml2argv-pseries-console-native.xml
new file mode 100644
index 000000000..9f37bf0de
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-console-native.xml
@@ -0,0 +1,17 @@
+
+ guest
+ 1ccfd97d-5eb4-478a-bbe6-88d254c16db7
+ 524288
+ 1
+
+ hvm
+
+
+ /usr/bin/qemu-system-ppc64
+
+
+
+
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-basic.args b/tests=
/qemuxml2argvdata/qemuxml2argv-pseries-console-virtio.args
similarity index 59%
copy from tests/qemuxml2argvdata/qemuxml2argv-pseries-basic.args
copy to tests/qemuxml2argvdata/qemuxml2argv-pseries-console-virtio.args
index 97a7057ba..343018fb3 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-basic.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-console-virtio.args
@@ -5,7 +5,7 @@ USER=3Dtest \
LOGNAME=3Dtest \
QEMU_AUDIO_DRV=3Dnone \
/usr/bin/qemu-system-ppc64 \
--name QEMUGuest1 \
+-name guest \
-S \
-M pseries \
-m 512 \
@@ -14,10 +14,10 @@ QEMU_AUDIO_DRV=3Dnone \
-nographic \
-nodefconfig \
-nodefaults \
--chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-QEMUGuest1/moni=
tor.sock,\
+-chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-guest/monitor.s=
ock,\
server,nowait \
-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dreadline \
-boot c \
--usb \
--chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000
+-device virtio-serial-pci,id=3Dvirtio-serial0,bus=3Dpci.0,addr=3D0x1 \
+-chardev pty,id=3Dcharconsole0 \
+-device virtconsole,chardev=3Dcharconsole0,id=3Dconsole0
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-console-virtio.xml=
b/tests/qemuxml2argvdata/qemuxml2argv-pseries-console-virtio.xml
new file mode 100644
index 000000000..0190ab63a
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-console-virtio.xml
@@ -0,0 +1,19 @@
+
+ guest
+ 1ccfd97d-5eb4-478a-bbe6-88d254c16db7
+ 524288
+ 1
+
+ hvm
+
+
+ /usr/bin/qemu-system-ppc64
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-compat-power9.=
args b/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-compat-power9.args
index af93d63dc..9bb375aeb 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-compat-power9.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-compat-power9.args
@@ -21,4 +21,4 @@ server,nowait \
-boot c \
-usb \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-compat.args b/=
tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-compat.args
index 7740e2f5a..5174aa760 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-compat.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-compat.args
@@ -21,4 +21,4 @@ server,nowait \
-boot c \
-usb \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args b/t=
ests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args
index d2c99a7fa..3790deca8 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-exact.args
@@ -21,4 +21,4 @@ server,nowait \
-boot c \
-usb \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-le.args b/test=
s/qemuxml2argvdata/qemuxml2argv-pseries-cpu-le.args
index 97a7057ba..789d9f679 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-le.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-cpu-le.args
@@ -20,4 +20,4 @@ server,nowait \
-boot c \
-usb \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-panic-missing.args=
b/tests/qemuxml2argvdata/qemuxml2argv-pseries-panic-missing.args
index 97a7057ba..789d9f679 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-panic-missing.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-panic-missing.args
@@ -20,4 +20,4 @@ server,nowait \
-boot c \
-usb \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-panic-no-address.a=
rgs b/tests/qemuxml2argvdata/qemuxml2argv-pseries-panic-no-address.args
index 97a7057ba..789d9f679 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-panic-no-address.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-panic-no-address.args
@@ -20,4 +20,4 @@ server,nowait \
-boot c \
-usb \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial+console-nat=
ive.args b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial+console-nativ=
e.args
new file mode 120000
index 000000000..d6c830ecd
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial+console-native.args
@@ -0,0 +1 @@
+qemuxml2argv-pseries-serial-native.args
\ No newline at end of file
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial+console-nat=
ive.xml b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial+console-native=
.xml
new file mode 100644
index 000000000..2733baa98
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial+console-native.xml
@@ -0,0 +1,18 @@
+
+ guest
+ 1ccfd97d-5eb4-478a-bbe6-88d254c16db7
+ 524288
+ 1
+
+ hvm
+
+
+ /usr/bin/qemu-system-ppc64
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-compat.args=
b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-compat.args
new file mode 120000
index 000000000..d6c830ecd
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-compat.args
@@ -0,0 +1 @@
+qemuxml2argv-pseries-serial-native.args
\ No newline at end of file
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-compat.xml =
b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-compat.xml
new file mode 100644
index 000000000..2e182edbd
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-compat.xml
@@ -0,0 +1,19 @@
+
+ guest
+ 1ccfd97d-5eb4-478a-bbe6-88d254c16db7
+ 524288
+ 1
+
+ hvm
+
+
+ /usr/bin/qemu-system-ppc64
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-invalid-mac=
hine.xml b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-invalid-machi=
ne.xml
new file mode 100644
index 000000000..5482146a5
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-invalid-machine.xml
@@ -0,0 +1,19 @@
+
+ guest
+ 1ccfd97d-5eb4-478a-bbe6-88d254c16db7
+ 524288
+ 1
+
+ hvm
+
+
+ /usr/bin/qemu-system-x86_64
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-basic.args b/tests=
/qemuxml2argvdata/qemuxml2argv-pseries-serial-native.args
similarity index 70%
copy from tests/qemuxml2argvdata/qemuxml2argv-pseries-basic.args
copy to tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-native.args
index 97a7057ba..f72b8b625 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-basic.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-native.args
@@ -5,7 +5,7 @@ USER=3Dtest \
LOGNAME=3Dtest \
QEMU_AUDIO_DRV=3Dnone \
/usr/bin/qemu-system-ppc64 \
--name QEMUGuest1 \
+-name guest \
-S \
-M pseries \
-m 512 \
@@ -14,10 +14,9 @@ QEMU_AUDIO_DRV=3Dnone \
-nographic \
-nodefconfig \
-nodefaults \
--chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-QEMUGuest1/moni=
tor.sock,\
+-chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-guest/monitor.s=
ock,\
server,nowait \
-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dreadline \
-boot c \
--usb \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-native.xml =
b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-native.xml
new file mode 100644
index 000000000..6cec4bc9d
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-serial-native.xml
@@ -0,0 +1,16 @@
+
+ guest
+ 1ccfd97d-5eb4-478a-bbe6-88d254c16db7
+ 524288
+ 1
+
+ hvm
+
+
+ /usr/bin/qemu-system-ppc64
+
+
+
+
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-default.args b=
/tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-default.args
index a92b1e01b..37c059403 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-default.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-default.args
@@ -20,4 +20,4 @@ server,nowait \
-boot c \
-device pci-ohci,id=3Dusb,bus=3Dpci.0,addr=3D0x1 \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-kbd.args b/tes=
ts/qemuxml2argvdata/qemuxml2argv-pseries-usb-kbd.args
index caaccdbb8..838b80453 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-kbd.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-kbd.args
@@ -20,5 +20,5 @@ server,nowait \
-boot c \
-device pci-ohci,id=3Dusb,bus=3Dpci.0,addr=3D0x1 \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000 \
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000 \
-device usb-kbd,id=3Dinput0,bus=3Dusb.0,port=3D1
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-multi.args b/t=
ests/qemuxml2argvdata/qemuxml2argv-pseries-usb-multi.args
index b9bd905a5..56bc1d67e 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-multi.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-multi.args
@@ -21,4 +21,4 @@ server,nowait \
-device piix3-usb-uhci,id=3Dusb,bus=3Dpci.0,addr=3D0x1 \
-device pci-ohci,id=3Dusb1,bus=3Dpci.0,addr=3D0x2 \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-vio-user-assigned.=
args b/tests/qemuxml2argvdata/qemuxml2argv-pseries-vio-user-assigned.args
index 63cf3c183..0fcfbe379 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-vio-user-assigned.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-vio-user-assigned.args
@@ -25,6 +25,6 @@ server,nowait \
-device scsi-disk,bus=3Dscsi1.0,channel=3D0,scsi-id=3D0,lun=3D0,\
drive=3Ddrive-scsi1-0-0-0,id=3Dscsi1-0-0-0 \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x20000000 \
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x20000000 \
-chardev pty,id=3Dcharserial1 \
--device spapr-vty,chardev=3Dcharserial1,reg=3D0x30001000
+-device spapr-vty,chardev=3Dcharserial1,id=3Dserial1,reg=3D0x30001000
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-vio.args b/tests/q=
emuxml2argvdata/qemuxml2argv-pseries-vio.args
index 0294067bc..8a9bdcc4c 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-vio.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-vio.args
@@ -25,6 +25,6 @@ server,nowait \
-device scsi-disk,bus=3Dscsi1.0,channel=3D0,scsi-id=3D0,lun=3D0,\
drive=3Ddrive-scsi1-0-0-0,id=3Dscsi1-0-0-0 \
-chardev pty,id=3Dcharserial0 \
--device spapr-vty,chardev=3Dcharserial0,reg=3D0x30000000 \
+-device spapr-vty,chardev=3Dcharserial0,id=3Dserial0,reg=3D0x30000000 \
-chardev pty,id=3Dcharserial1 \
--device spapr-vty,chardev=3Dcharserial1,reg=3D0x30001000
+-device spapr-vty,chardev=3Dcharserial1,id=3Dserial1,reg=3D0x30001000
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 29df253b8..5827a47e5 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1877,6 +1877,22 @@ mymain(void)
QEMU_CAPS_MACHINE_OPT,
QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT);
=20
+ DO_TEST("pseries-serial-native",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_VTY);
+ DO_TEST("pseries-serial+console-native",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_VTY);
+ DO_TEST("pseries-serial-compat",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_VTY);
+ DO_TEST("pseries-console-native",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_VTY);
+ DO_TEST("pseries-console-virtio",
+ QEMU_CAPS_NODEFCONFIG);
+ DO_TEST_PARSE_ERROR("pseries-serial-invalid-machine", NONE);
+
DO_TEST("disk-ide-drive-split",
QEMU_CAPS_NODEFCONFIG,
QEMU_CAPS_IDE_CD);
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-panic-pseries.xml b/te=
sts/qemuxml2xmloutdata/qemuxml2xmlout-panic-pseries.xml
index 496df0696..484fe4cfa 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-panic-pseries.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-panic-pseries.xml
@@ -22,8 +22,8 @@
-
-
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-console-native=
.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-console-native.xml
new file mode 120000
index 000000000..b0e645fc0
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-console-native.xml
@@ -0,0 +1 @@
+qemuxml2xmlout-pseries-serial-native.xml
\ No newline at end of file
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-panic-pseries.xml b/te=
sts/qemuxml2xmloutdata/qemuxml2xmlout-pseries-console-virtio.xml
similarity index 71%
copy from tests/qemuxml2xmloutdata/qemuxml2xmlout-panic-pseries.xml
copy to tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-console-virtio.xml
index 496df0696..48760f282 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-panic-pseries.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-console-virtio.xml
@@ -1,5 +1,5 @@
- QEMUGuest1
+ guest
1ccfd97d-5eb4-478a-bbe6-88d254c16db7
524288
524288
@@ -14,22 +14,16 @@
destroy
/usr/bin/qemu-system-ppc64
-
-
-
+
-
-
-
-
-
-
+
+
+
-
-
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-compat-pow=
er9.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-compat-power9=
.xml
index 9d4c5efe6..404bb0c76 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-compat-power9.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-compat-power9.xml
@@ -25,8 +25,8 @@
-
-
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-compat.xml=
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-compat.xml
index 6059859ab..1891fa5f4 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-compat.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-compat.xml
@@ -25,8 +25,8 @@
-
-
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-exact.xml =
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-exact.xml
index f3216523e..f08f3e005 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-exact.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-exact.xml
@@ -26,8 +26,8 @@
-
-
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-missing.=
xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-missing.xml
index 496df0696..484fe4cfa 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-missing.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-missing.xml
@@ -22,8 +22,8 @@
-
-
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-no-addre=
ss.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-no-address.x=
ml
index 496df0696..484fe4cfa 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-no-address.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-no-address.xml
@@ -22,8 +22,8 @@
-
-
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-serial+console=
-native.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-serial+consol=
e-native.xml
new file mode 120000
index 000000000..b0e645fc0
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-serial+console-native=
.xml
@@ -0,0 +1 @@
+qemuxml2xmlout-pseries-serial-native.xml
\ No newline at end of file
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-serial-compat.=
xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-serial-compat.xml
new file mode 120000
index 000000000..b0e645fc0
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-serial-compat.xml
@@ -0,0 +1 @@
+qemuxml2xmlout-pseries-serial-native.xml
\ No newline at end of file
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-panic-pseries.xml b/te=
sts/qemuxml2xmloutdata/qemuxml2xmlout-pseries-serial-native.xml
similarity index 79%
copy from tests/qemuxml2xmloutdata/qemuxml2xmlout-panic-pseries.xml
copy to tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-serial-native.xml
index 496df0696..fae7c54d5 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-panic-pseries.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-serial-native.xml
@@ -1,5 +1,5 @@
- QEMUGuest1
+ guest
1ccfd97d-5eb4-478a-bbe6-88d254c16db7
524288
524288
@@ -14,16 +14,14 @@
destroy
/usr/bin/qemu-system-ppc64
-
-
-
+
-
-
+
+
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index d66cf155d..4318ae503 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -768,6 +768,21 @@ mymain(void)
QEMU_CAPS_MACHINE_OPT,
QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT);
=20
+ DO_TEST("pseries-serial-native",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_VTY);
+ DO_TEST("pseries-serial+console-native",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_VTY);
+ DO_TEST("pseries-serial-compat",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_VTY);
+ DO_TEST("pseries-console-native",
+ QEMU_CAPS_NODEFCONFIG,
+ QEMU_CAPS_DEVICE_SPAPR_VTY);
+ DO_TEST("pseries-console-virtio",
+ QEMU_CAPS_NODEFCONFIG);
+
DO_TEST("balloon-device-auto", NONE);
DO_TEST("balloon-device-period", NONE);
DO_TEST("channel-virtio-auto", NONE);
--=20
2.14.3
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list