Hi:
Jiri Denemark <jdenemar(a)redhat.com>
Interesting, hypervisor-cpu-baseline is supposed to provide an
intersection of both CPU models. I wonder whether we have a bug
somewhere, could you share the host-model definition from virsh
domcapabilities from both hosts? The easiest way is running
$ virsh domcapabilities | xmllint --xpath
'//cpu/mode[@name="host-model"]' -
the result are below:
for cpu i3-9100F:
<mode name="host-model" supported="yes">
<model fallback="forbid">Skylake-Client-IBRS</model>
<vendor>Intel</vendor>
<maxphysaddr mode="passthrough" limit="39"/>
<feature policy="require" name="ss"/>
<feature policy="require" name="vmx"/>
<feature policy="require" name="pdcm"/>
<feature policy="require" name="hypervisor"/>
<feature policy="require" name="tsc_adjust"/>
<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="flush-l1d"/>
<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="invtsc"/>
<feature policy="require" name="ibpb"/>
<feature policy="require" name="ibrs"/>
<feature policy="require" name="amd-stibp"/>
<feature policy="require" name="amd-ssbd"/>
<feature policy="require" name="rsba"/>
<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-activity-wait-sipi"/>
<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-invvpid"/>
<feature policy="require"
name="vmx-invvpid-single-addr"/>
<feature policy="require"
name="vmx-invvpid-all-context"/>
<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-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-load-perf-global-ctrl"/>
<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-exit-clear-bndcfgs"/>
<feature policy="require"
name="vmx-entry-noload-debugctl"/>
<feature policy="require" name="vmx-entry-ia32e-mode"/>
<feature policy="require"
name="vmx-entry-load-perf-global-ctrl"/>
<feature policy="require" name="vmx-entry-load-pat"/>
<feature policy="require" name="vmx-entry-load-efer"/>
<feature policy="require" name="vmx-entry-load-bndcfgs"/>
<feature policy="require" name="vmx-eptp-switching"/>
<feature policy="disable" name="hle"/>
<feature policy="disable" name="rtm"/>
</mode>
for cpu E3-1280 V3:
<mode name="host-model" supported="yes">
<model fallback="forbid">Haswell-noTSX-IBRS</model>
<vendor>Intel</vendor>
<maxphysaddr mode="passthrough" limit="39"/>
<feature policy="require" name="vme"/>
<feature policy="require" name="ss"/>
<feature policy="require" name="vmx"/>
<feature policy="require" name="pdcm"/>
<feature policy="require" name="f16c"/>
<feature policy="require" name="rdrand"/>
<feature policy="require" name="hypervisor"/>
<feature policy="require" name="arat"/>
<feature policy="require" name="tsc_adjust"/>
<feature policy="require" name="umip"/>
<feature policy="require" name="md-clear"/>
<feature policy="require" name="stibp"/>
<feature policy="require" name="flush-l1d"/>
<feature policy="require" name="arch-capabilities"/>
<feature policy="require" name="ssbd"/>
<feature policy="require" name="xsaveopt"/>
<feature policy="require" name="pdpe1gb"/>
<feature policy="require" name="abm"/>
<feature policy="require" name="invtsc"/>
<feature policy="require" name="ibpb"/>
<feature policy="require" name="ibrs"/>
<feature policy="require" name="amd-stibp"/>
<feature policy="require" name="amd-ssbd"/>
<feature policy="require" name="pschange-mc-no"/>
<feature policy="require" name="gds-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-activity-wait-sipi"/>
<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-pml"/>
<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-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-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-load-perf-global-ctrl"/>
<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-perf-global-ctrl"/>
<feature policy="require" name="vmx-entry-load-pat"/>
<feature policy="require" name="vmx-entry-load-efer"/>
<feature policy="require" name="vmx-eptp-switching"/>
</mode>
Well, they were always exposed by QEMU, libvirt just added support
for
them and thus they are visible in the XMLs as well.
indeed. I check the guest machine via "cat /proc/cpuinfo" and vmx
is still there even though I deleted these vmx lines.
is it ok the drop all these vmx cpu features for a guest?
thanks a lot for help!
Sure, unless you specifically need some of them, you can drop them. They
will be added to the XML anyway during VM startup.
indeed. i try to run "virsh dumpxml" for a running vm and I saw many
vmx lines.
so I got confused. is "virsh dumpxml" supposed to be the same as
"hypervisor-cpu-baseline" result?
PS: according to redhat
document(https://access.redhat.com/documentation/zh-tw/red_hat_enterprise...,
it use "hypervisor-cpu-baseline" without "--migratable". it will
bring
in "invtsc" cpu feature. I can never live migrate with the feature.