[libvirt] [PATCHv4 1/6] conf: add <ioapic driver> to <features>
Ján Tomko
jtomko at redhat.com
Fri May 12 14:42:27 UTC 2017
On Tue, May 09, 2017 at 01:08:55PM +0200, Andrea Bolognani wrote:
>On Wed, 2017-05-03 at 16:05 +0200, Ján Tomko wrote:
>> Add a new <ioapic> element with a driver attribute.
>>
>> Possible values are qemu and kvm. With 'qemu', the I/O
>> APIC can be put in the userspace even for KVM domains.
>>
>> https://bugzilla.redhat.com/show_bug.cgi?id=1427005
>> ---
>> docs/formatdomain.html.in | 8 ++++++
>> docs/schemas/domaincommon.rng | 15 ++++++++++
>> src/conf/domain_conf.c | 33 +++++++++++++++++++++-
>> src/conf/domain_conf.h | 11 ++++++++
>> .../qemuxml2argv-intel-iommu-ioapic.xml | 29 +++++++++++++++++++
>> .../qemuxml2xmlout-intel-iommu-ioapic.xml | 1 +
>> tests/qemuxml2xmltest.c | 1 +
>> 7 files changed, 97 insertions(+), 1 deletion(-)
>> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-intel-iommu-ioapic.xml
>> create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-ioapic.xml
>
>Please make sure that only x86 guests can use the <ioapic/>
>feature, and all other guests get an error instead.
>
>Also I didn't check whether this is the case already, but
>the feature should be advertised the same way <apic/> is,
>and in particular it should show up in the capabilities XML.
>
I have sent the capabilites as a separate patch.
Re: x86-only: would squashing this in do?
Jan
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index cc02c80..7805b76 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -2807,6 +2807,22 @@ qemuDomainDefCPUPostParse(virDomainDefPtr def)
static int
+qemuDomainDefVerifyFeatures(const virDomainDef *def)
+{
+ if (def->features[VIR_DOMAIN_FEATURE_IOAPIC] == VIR_TRISTATE_SWITCH_ON &&
+ !ARCH_IS_X86(def->os.arch)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("I/O APIC tuning is not supported "
+ "for '%s' architecture"),
+ virArchToString(def->os.arch));
+ return -1;
+ }
+
+ return 0;
+}
+
+
+static int
qemuDomainDefPostParse(virDomainDefPtr def,
virCapsPtr caps,
unsigned int parseFlags,
@@ -2861,6 +2877,9 @@ qemuDomainDefPostParse(virDomainDefPtr def,
qemuDomainDefEnableDefaultFeatures(def, qemuCaps);
+ if (qemuDomainDefVerifyFeatures(def) < 0)
+ goto cleanup;
+
if (qemuDomainRecheckInternalPaths(def, cfg, parseFlags) < 0)
goto cleanup;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170512/e2480ea7/attachment-0001.sig>
More information about the libvir-list
mailing list