mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 06:05:27 +00:00
fa54595178
The mpx feature was removed from the corresponding qemu cpu models.
With mpx in the libvirt cpu models, libvirt believes the feature
to be implicitly enabled when creating qemu VMs, while in fact it is
disabled.
This became an issue when commit 94eacd5a5f
introduced new vmx-*
features, of which some are dependent on mpx (see "feature_dependencies"
table in qemu target/i386/cpu.c), e.g. vmx-exit-clear-bndcfgs and
vmx-entry-load-bndcfgs. These features cannot be enabled by qemu
without also mpx being enabled, leading to the error message
error: Failed to create domain from testdomain.xml
error: operation failed: guest CPU doesn't match
specification: missing features: mpx,vmx-exit-clear-bndcfgs,
vmx-entry-load-bndcfgs
when trying to create a VM with a "host-model" cpu on a host that
does support mpx and the mentioned vmx-* features:
<domain>
...
<cpu mode='host-model' check='full' />
...
</domain>
Resolve the issue by removing mpx from libvirt's cpu models as well.
Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
90 lines
4.4 KiB
XML
90 lines
4.4 KiB
XML
<cpu mode='custom' match='exact'>
|
|
<model fallback='forbid'>Skylake-Client-IBRS</model>
|
|
<vendor>Intel</vendor>
|
|
<feature policy='require' name='vmx'/>
|
|
<feature policy='require' name='hypervisor'/>
|
|
<feature policy='require' name='ss'/>
|
|
<feature policy='require' name='tsc_adjust'/>
|
|
<feature policy='require' name='mpx'/>
|
|
<feature policy='require' name='clflushopt'/>
|
|
<feature policy='require' name='umip'/>
|
|
<feature policy='require' name='md-clear'/>
|
|
<feature policy='require' name='stibp'/>
|
|
<feature policy='require' name='arch-capabilities'/>
|
|
<feature policy='require' name='ssbd'/>
|
|
<feature policy='require' name='xsaves'/>
|
|
<feature policy='require' name='pdpe1gb'/>
|
|
<feature policy='require' name='skip-l1dfl-vmentry'/>
|
|
<feature policy='require' name='pschange-mc-no'/>
|
|
<feature policy='require' name='vmx-ins-outs'/>
|
|
<feature policy='require' name='vmx-true-ctls'/>
|
|
<feature policy='require' name='vmx-store-lma'/>
|
|
<feature policy='require' name='vmx-activity-hlt'/>
|
|
<feature policy='require' name='vmx-vmwrite-vmexit-fields'/>
|
|
<feature policy='require' name='vmx-apicv-xapic'/>
|
|
<feature policy='require' name='vmx-ept'/>
|
|
<feature policy='require' name='vmx-desc-exit'/>
|
|
<feature policy='require' name='vmx-rdtscp-exit'/>
|
|
<feature policy='require' name='vmx-apicv-x2apic'/>
|
|
<feature policy='require' name='vmx-vpid'/>
|
|
<feature policy='require' name='vmx-wbinvd-exit'/>
|
|
<feature policy='require' name='vmx-unrestricted-guest'/>
|
|
<feature policy='require' name='vmx-rdrand-exit'/>
|
|
<feature policy='require' name='vmx-invpcid-exit'/>
|
|
<feature policy='require' name='vmx-vmfunc'/>
|
|
<feature policy='require' name='vmx-shadow-vmcs'/>
|
|
<feature policy='require' name='vmx-rdseed-exit'/>
|
|
<feature policy='require' name='vmx-pml'/>
|
|
<feature policy='require' name='vmx-xsaves'/>
|
|
<feature policy='require' name='vmx-ept-execonly'/>
|
|
<feature policy='require' name='vmx-page-walk-4'/>
|
|
<feature policy='require' name='vmx-ept-2mb'/>
|
|
<feature policy='require' name='vmx-ept-1gb'/>
|
|
<feature policy='require' name='vmx-invept'/>
|
|
<feature policy='require' name='vmx-eptad'/>
|
|
<feature policy='require' name='vmx-invept-single-context'/>
|
|
<feature policy='require' name='vmx-invept-all-context'/>
|
|
<feature policy='require' name='vmx-invvpid'/>
|
|
<feature policy='require' name='vmx-invvpid-single-addr'/>
|
|
<feature policy='require' name='vmx-invvpid-all-context'/>
|
|
<feature policy='require' name='vmx-intr-exit'/>
|
|
<feature policy='require' name='vmx-nmi-exit'/>
|
|
<feature policy='require' name='vmx-vnmi'/>
|
|
<feature policy='require' name='vmx-preemption-timer'/>
|
|
<feature policy='require' name='vmx-vintr-pending'/>
|
|
<feature policy='require' name='vmx-tsc-offset'/>
|
|
<feature policy='require' name='vmx-hlt-exit'/>
|
|
<feature policy='require' name='vmx-invlpg-exit'/>
|
|
<feature policy='require' name='vmx-mwait-exit'/>
|
|
<feature policy='require' name='vmx-rdpmc-exit'/>
|
|
<feature policy='require' name='vmx-rdtsc-exit'/>
|
|
<feature policy='require' name='vmx-cr3-load-noexit'/>
|
|
<feature policy='require' name='vmx-cr3-store-noexit'/>
|
|
<feature policy='require' name='vmx-cr8-load-exit'/>
|
|
<feature policy='require' name='vmx-cr8-store-exit'/>
|
|
<feature policy='require' name='vmx-flexpriority'/>
|
|
<feature policy='require' name='vmx-vnmi-pending'/>
|
|
<feature policy='require' name='vmx-movdr-exit'/>
|
|
<feature policy='require' name='vmx-io-exit'/>
|
|
<feature policy='require' name='vmx-io-bitmap'/>
|
|
<feature policy='require' name='vmx-mtf'/>
|
|
<feature policy='require' name='vmx-msr-bitmap'/>
|
|
<feature policy='require' name='vmx-monitor-exit'/>
|
|
<feature policy='require' name='vmx-pause-exit'/>
|
|
<feature policy='require' name='vmx-secondary-ctls'/>
|
|
<feature policy='require' name='vmx-exit-nosave-debugctl'/>
|
|
<feature policy='require' name='vmx-exit-ack-intr'/>
|
|
<feature policy='require' name='vmx-exit-save-pat'/>
|
|
<feature policy='require' name='vmx-exit-load-pat'/>
|
|
<feature policy='require' name='vmx-exit-save-efer'/>
|
|
<feature policy='require' name='vmx-exit-load-efer'/>
|
|
<feature policy='require' name='vmx-exit-save-preemption-timer'/>
|
|
<feature policy='require' name='vmx-entry-noload-debugctl'/>
|
|
<feature policy='require' name='vmx-entry-ia32e-mode'/>
|
|
<feature policy='require' name='vmx-entry-load-pat'/>
|
|
<feature policy='require' name='vmx-entry-load-efer'/>
|
|
<feature policy='require' name='vmx-eptp-switching'/>
|
|
<feature policy='disable' name='hle'/>
|
|
<feature policy='disable' name='rtm'/>
|
|
</cpu>
|