Hi: Jiri Denemark <jdenemar@xxxxxxxxxx> > 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_linux/9/html/configuring_and_managing_virtualization/migrating-virtual-machines_configuring-and-managing-virtualization#verifying-host-cpu-compatibility-for-virtual-machine-migration_migrating-virtual-machines), it use "hypervisor-cpu-baseline" without "--migratable". it will bring in "invtsc" cpu feature. I can never live migrate with the feature.