</dd>
</dl>
+ <h3><a id="elementsIothread">CPU configuration</a></h3>
+
+ <p>
+ The <code>iothread</code> elements indicates whether or not
+ <a href="formatdomain.html#elementsIOThreadsAllocation">I/O threads</a>
+ are supported.
+ </p>
+
+<pre>
+<domainCapabilities>
+ ...
+ <iothread supported='yes'/>
+ ...
+<domainCapabilities>
+</pre>
+
<h3><a id="elementsDevices">Devices</a></h3>
<p>
<optional>
<ref name='vcpu'/>
</optional>
+ <optional>
+ <ref name='iothreads'/>
+ </optional>
<optional>
<ref name='os'/>
</optional>
</element>
</define>
+ <define name='iothreads'>
+ <element name='iothreads'>
+ <ref name='supported'/>
+ <empty/>
+ </element>
+ </define>
+
<define name='loader'>
<element name='loader'>
<ref name='supported'/>
if (caps->maxvcpus)
virBufferAsprintf(&buf, "<vcpu max='%d'/>\n", caps->maxvcpus);
+ virBufferAsprintf(&buf, "<iothreads supported='%s'/>\n",
+ caps->iothreads ? "yes" : "no");
+
virDomainCapsOSFormat(&buf, &caps->os);
virDomainCapsCPUFormat(&buf, &caps->cpu);
/* Some machine specific info */
int maxvcpus;
+ bool iothreads; /* Whether I/O threads are supported or not. */
virDomainCapsOS os;
virDomainCapsCPU cpu;
}
+static int
+virQEMUCapsFillDomainIOThreadCaps(virQEMUCapsPtr qemuCaps,
+ virDomainCapsPtr domCaps)
+{
+ domCaps->iothreads = virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD);
+
+ return 0;
+}
+
+
static int
virQEMUCapsFillDomainDeviceDiskCaps(virQEMUCapsPtr qemuCaps,
const char *machine,
if (virQEMUCapsFillDomainOSCaps(os, firmwares, nfirmwares) < 0 ||
virQEMUCapsFillDomainCPUCaps(caps, qemuCaps, domCaps) < 0 ||
+ virQEMUCapsFillDomainIOThreadCaps(qemuCaps, domCaps) < 0 ||
virQEMUCapsFillDomainDeviceDiskCaps(qemuCaps,
domCaps->machine, disk) < 0 ||
virQEMUCapsFillDomainDeviceGraphicsCaps(qemuCaps, graphics) < 0 ||
<domain>uml</domain>
<machine>my-machine-type</machine>
<arch>x86_64</arch>
+ <iothreads supported='no'/>
<os supported='no'/>
<cpu>
<mode name='host-passthrough' supported='no'/>
<machine>my-machine-type</machine>
<arch>x86_64</arch>
<vcpu max='255'/>
+ <iothreads supported='no'/>
<os supported='yes'>
<loader supported='yes'>
<value>/foo/bar</value>
<machine>xenfv</machine>
<arch>x86_64</arch>
<vcpu max='128'/>
+ <iothreads supported='no'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/lib/xen/boot/hvmloader</value>
<machine>xenpv</machine>
<arch>x86_64</arch>
<vcpu max='512'/>
+ <iothreads supported='no'/>
<os supported='yes'>
<loader supported='no'/>
</os>
<machine>pc-i440fx-1.7</machine>
<arch>x86_64</arch>
<vcpu max='255'/>
+ <iothreads supported='no'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>virt-2.12</machine>
<arch>aarch64</arch>
<vcpu max='255'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>pseries-2.12</machine>
<arch>ppc64</arch>
<vcpu max='1024'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>s390-ccw-virtio-2.12</machine>
<arch>s390x</arch>
<vcpu max='248'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>pc-i440fx-2.12</machine>
<arch>x86_64</arch>
<vcpu max='255'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>virt-2.6</machine>
<arch>aarch64</arch>
<vcpu max='255'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>integratorcp</machine>
<arch>aarch64</arch>
<vcpu max='1'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>pseries-2.6</machine>
<arch>ppc64</arch>
<vcpu max='255'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>pc-i440fx-2.6</machine>
<arch>x86_64</arch>
<vcpu max='255'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>s390-ccw-virtio-2.7</machine>
<arch>s390x</arch>
<vcpu max='248'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>pc-i440fx-2.8</machine>
<arch>x86_64</arch>
<vcpu max='255'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>s390-ccw-virtio-2.8</machine>
<arch>s390x</arch>
<vcpu max='248'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>pc-i440fx-2.8</machine>
<arch>x86_64</arch>
<vcpu max='255'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>pc-q35-2.9</machine>
<arch>x86_64</arch>
<vcpu max='288'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>pc-i440fx-2.9</machine>
<arch>x86_64</arch>
<vcpu max='255'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<machine>pc-i440fx-2.9</machine>
<arch>x86_64</arch>
<vcpu max='255'/>
+ <iothreads supported='yes'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>