]> git.ipfire.org Git - thirdparty/util-linux.git/commit
lscpu: correct the Virtualization type on Xen DomU PV guest
authorDongli Zhang <dongli.zhang@oracle.com>
Tue, 22 Mar 2016 05:38:14 +0000 (13:38 +0800)
committerKarel Zak <kzak@redhat.com>
Tue, 22 Mar 2016 09:13:03 +0000 (10:13 +0100)
commit0ebbe9f1048e1c7ef7d74034bd3b092fd0ef4d3e
tree81c0ff5f859c78e11ff25b282d2a4703b07956ba
parent9e24b917f26ce8d5879e46e71e2cf63d3546ce46
lscpu: correct the Virtualization type on Xen DomU PV guest

Nowadays, most Intel CPUs have "cpuid faulting" available which could trap
the execution of "cpuid" instruction when CPL>0  with GP fault. Thus,
"cpuid" instruction could trap to Xen hypervisor on the paravirtualized PV
guest on most servers today, except on old CPUs prior to 2011. On CPU after
2011, Xen will put "XenVMMXenVMM" on both HVM and PV guests, which could
have lscpu command erroneously classify the guest as type "full".  The
current lscpu command, which is based on "cpuid" instruction, still assumes
that it will not cause the trap to Xen hypervisor on Xen PV guest and uses
/proc/xen to identify whether it's running on PV DomU or not.  To identify
this kind of information under the help of
/sys/hypervisor/properties/features would be more accurate for the CPU
nowadays. The bit 5 (XENFEAT_mmu_pt_update_preserve_ad) of the features
will be set only when it's running on Xen PV domain. The combo of bit 3 and
8 (XENFEAT_supervisor_mode_kernel and XENFEAT_hvm_callback_vector) will be
set simultaneously only when it's running on Xen PVH domain.

[kzak@redhat.com: - add path_exist()]

Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/lscpu.c