Re: cpu vmx migration issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.




[Index of Archives]     [Virt Tools]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux