libvirt/src/qemu
Jiri Denemark 1fd28a2e79 qemu: Translate features in virQEMUCapsGetCPUFeatures
Starting with QEMU 4.1 qemuMonitorCPUModelInfo structure in virQEMUCaps
stores only canonical feature names which may differ from the name used
by libvirt. We need translate these canonical names into libvirt names
for further consumption.

This fixes a bug in qemuConnectBaselineHypervisorCPU which would remove
all features for which libvirt's spelling differs from the QEMU's
preferred name. For example, the following result of
qemuConnectBaselineHypervisorCPU on my host with QEMU 4.1 is wrong:

    <cpu mode='custom' match='exact'>
      <model fallback='forbid'>Skylake-Client</model>
      <vendor>Intel</vendor>
      <feature policy='require' name='ss'/>
      <feature policy='require' name='vmx'/>
      <feature policy='require' name='hypervisor'/>
      <feature policy='require' name='clflushopt'/>
      <feature policy='require' name='umip'/>
      <feature policy='require' name='arch-capabilities'/>
      <feature policy='require' name='xsaves'/>
      <feature policy='require' name='pdpe1gb'/>
      <feature policy='require' name='invtsc'/>
      <feature policy='disable' name='pclmuldq'/>
      <feature policy='disable' name='lahf_lm'/>
    </cpu>

The 'pclmuldq' and 'lahf_lm' should not be disabled in the baseline CPU
as they are supported by QEMU on this host.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-07-26 16:37:30 +02:00
..
EVENTHANDLERS.txt
libvirtd_qemu.aug qemu: Add support for overriding max threads per process limit 2019-07-24 15:59:49 -06:00
Makefile.inc.am qemu: Move qemuParseKeywords(Free) to the monitor code 2019-06-20 12:15:05 +02:00
MIGRATION.txt
qemu_agent.c
qemu_agent.h
qemu_alias.c
qemu_alias.h
qemu_block.c qemu: block: Use simple backing stores string format if possible 2019-07-25 13:21:32 +02:00
qemu_block.h qemu: block: Use simple backing stores string format if possible 2019-07-25 13:21:32 +02:00
qemu_blockjob.c qemu: blockjob: Ensure that config disk source is identical when modifying it 2019-07-25 13:21:33 +02:00
qemu_blockjob.h qemu: blockjob: Register disk->mirror with a job only when required 2019-07-25 13:21:33 +02:00
qemu_capabilities.c qemu: Translate features in virQEMUCapsGetCPUFeatures 2019-07-26 16:37:30 +02:00
qemu_capabilities.h qemu: Add bochs-display capability 2019-07-15 10:21:21 +02:00
qemu_capspriv.h qemu: Translate feature names from query-cpu-model-expansion 2019-06-20 00:22:39 +02:00
qemu_cgroup.c qemu: Add support for overriding max threads per process limit 2019-07-24 15:59:49 -06:00
qemu_cgroup.h
qemu_command.c qemu: Add possibility to prepare top image only for attachment via blockdev 2019-07-25 13:21:32 +02:00
qemu_command.h qemu: Add possibility to prepare top image only for attachment via blockdev 2019-07-25 13:21:32 +02:00
qemu_conf.c qemu: Add support for overriding max threads per process limit 2019-07-24 15:59:49 -06:00
qemu_conf.h qemu: Add support for overriding max threads per process limit 2019-07-24 15:59:49 -06:00
qemu_domain_address.c qemu: address: remove useless comment 2019-07-16 17:00:36 +02:00
qemu_domain_address.h
qemu_domain.c qemu: blockjob: Register disk->mirror with a job only when required 2019-07-25 13:21:33 +02:00
qemu_domain.h qemu: Detect managed persistent reservations in block job orphan chains 2019-07-18 17:59:34 +02:00
qemu_driver.c tpm: Check TPM XML device configuration changes after edit 2019-07-26 10:30:59 +01:00
qemu_driver.h
qemu_extdevice.c tpm: Check TPM XML device configuration changes after edit 2019-07-26 10:30:59 +01:00
qemu_extdevice.h tpm: Check TPM XML device configuration changes after edit 2019-07-26 10:30:59 +01:00
qemu_firmware.c qemu_firmware: only set nfeatures on success 2019-06-26 09:24:09 +02:00
qemu_firmware.h
qemu_hostdev.c qemu: De-duplicate some path definitions 2019-07-03 09:33:45 +02:00
qemu_hostdev.h
qemu_hotplug.c qemu: hotplug: Transfer ownership of backing chain to block job on disk unplug 2019-07-18 17:59:34 +02:00
qemu_hotplug.h
qemu_hotplugpriv.h
qemu_interface.c
qemu_interface.h
qemu_migration_cookie.c
qemu_migration_cookie.h
qemu_migration_params.c
qemu_migration_params.h
qemu_migration_paramspriv.h
qemu_migration.c qemu: blockjob: Save status XML when modifying job state 2019-07-18 17:59:34 +02:00
qemu_migration.h
qemu_monitor_json.c qemu: Remove unnecessary check in qemuMonitorJSONGetJobInfoOne 2019-07-23 10:55:56 -04:00
qemu_monitor_json.h qemu: monitor: Add APIs for 'blockdev-create' 2019-07-18 17:59:33 +02:00
qemu_monitor_priv.h
qemu_monitor_text.c qemu: Remove qemuMonitorTextSetCPU 2019-06-20 15:59:19 +02:00
qemu_monitor_text.h qemu: Remove qemuMonitorTextSetCPU 2019-06-20 15:59:19 +02:00
qemu_monitor.c qemu: driver: blockdevize qemuDomainGetBlockJobInfo 2019-07-25 13:21:32 +02:00
qemu_monitor.h qemu: monitor: Add APIs for 'blockdev-create' 2019-07-18 17:59:33 +02:00
qemu_process.c qemu: process: Don't use qemuBlockJobStartupFinalize in qemuProcessHandleBlockJob 2019-07-19 15:49:40 +02:00
qemu_process.h qemu: also delete qemuProcessAttach 2019-06-20 12:47:10 +02:00
qemu_processpriv.h
qemu_qapi.c qemu: qapi: Implement support for 'features' 2019-06-20 09:20:04 +02:00
qemu_qapi.h
qemu_security.c qemu_security: Implement qemuSecurityMoveImageMetadata 2019-07-03 08:36:04 +02:00
qemu_security.h qemu_security: Implement qemuSecurityMoveImageMetadata 2019-07-03 08:36:04 +02:00
qemu_tpm.c tpm: Pass migration key passphrase via fd to swtpm 2019-07-26 10:30:59 +01:00
qemu_tpm.h
qemu.conf qemu: Add support for overriding max threads per process limit 2019-07-24 15:59:49 -06:00
test_libvirtd_qemu.aug.in qemu: Add support for overriding max threads per process limit 2019-07-24 15:59:49 -06:00
THREADS.txt