capabilities: Advertise cpuselection if -cpu host is usable

When -cpu host is supported by a QEMU binary, a user can use
<cpu mode='host-passthrough'/> in domain XML even when libvirtd failed
to find a matching model for the host CPU. Let's make it obvious by
advertising <cpuselection/> guest capability whenever -cpu host is
supported.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
Jiri Denemark 2016-04-13 09:06:23 +02:00
parent 1522503189
commit ced1e846a0
3 changed files with 6 additions and 3 deletions

View File

@ -928,9 +928,10 @@ virQEMUCapsInitGuestFromBinary(virCapsPtr caps,
machines = NULL;
nmachines = 0;
if (caps->host.cpu &&
caps->host.cpu->model &&
virQEMUCapsGetCPUDefinitions(qemubinCaps, NULL) > 0 &&
if ((virQEMUCapsGet(qemubinCaps, QEMU_CAPS_CPU_HOST) ||
(caps->host.cpu &&
caps->host.cpu->model &&
virQEMUCapsGetCPUDefinitions(qemubinCaps, NULL) > 0)) &&
!virCapabilitiesAddGuestFeature(guest, "cpuselection", true, false))
goto cleanup;

View File

@ -18,6 +18,7 @@
</domain>
</arch>
<features>
<cpuselection/>
<deviceboot/>
<disksnapshot default='on' toggle='no'/>
<acpi default='on' toggle='yes'/>

View File

@ -18,6 +18,7 @@
</domain>
</arch>
<features>
<cpuselection/>
<deviceboot/>
<disksnapshot default='off' toggle='no'/>
<acpi default='on' toggle='yes'/>