On Tue, Jun 17, 2014 at 5:36 AM, George Dunlap dunlapg@umich.edu wrote:
On Thu, Jun 12, 2014 at 11:23 PM, Karl Johnson karljohnson.it@gmail.com wrote:
Hello,
I am running two dom0s, one on CentOS 5 with Xen 4.1.2 (from Gitco) and
the
other one on CentOS 6 with Xen 4.2.4 (from Xen4CentOS). I host one LVM
based
domU on both from the same template (CentOS 6 PV) with the same Xen
config
(see below). However, the domU on Xen 4.1 reports itself as Xen PV while
the
domU on Xen4CentOS reports itself as Xen HVM.
== First domU ==
virt-what and cPanel scripts report domU as: xenpv
dom0: 2.6.18-371.6.1.el5xen Xen 4.1.2
domU Config:
bootloader = '/usr/bin/pygrub' extra = '' memory = 6144 hostname = 'web2.x.ca' cpu_weight = 256 name = 'vm115' vif = ['ip=205.X.X.X, vifname=vifvm115.0, mac=00:16:3e:7a:X:X'] vnc = 0 vcpus = 6 vncviewer = 0 serial = 'pty' disk = ['phy:/dev/xen/vm115_img,xvda1,w', 'phy:/dev/xen/vm115_swap,xvda2,w']
domU kernel: 2.6.32-431.5.1.el6.x86_64
root@web2 [~]# virt-what xen root@web2 [~]#
== Second domU ==
virt-what and cPanel scripts report domU as: xenhvm
dom0: 3.10.32-11.el6.centos.alt.x86_64 Xen 4.2.4-29.el6
domU Config:
bootloader = '/usr/bin/pygrub' extra = '' memory = 6144 hostname = 'web3.x.ca' cpu_weight = 256 name = 'vm116' vif = ['ip=205.X.X.X, vifname=vifvm116.0, mac=00:16:3e:cf:X:X'] vnc = 0 vcpus = 6 vncviewer = 0 serial = 'pty' disk = ['phy:/dev/xen/vm116_img,xvda1,w', 'phy:/dev/xen/vm116_swap,xvda2,w']
domU kernel: 2.6.32-431.5.1.el6.x86_64
root@web3 [~]# virt-what xen xen-hvm root@web3 [~]#
Any idea why?
A lot of these tools use quirks of the hypervisor to detect these kinds of changes. One such quirk in Xen PV is handling of the CPUID instruction: normally there's no way to trap the CPUID instruction in PV mode, so Xen introduced a special PV CPUID (which is just an illegal instruction that Xen recognizes and emulates itself) that the kernel is supposed to use instead; but that's an opt-in thing -- you can still execute the normal CPUID. By executing the PV CPUID and the normal CPUID and comparing the results, you can tell if you're in a PV or an HVM VM.
However, on recent architectures Intel has introduced functionality to allow trapping os CPUID even in non-HVM mode. Support for this went into 4.2. Now, if you have the right hardware, and the right Xen version, you'll get the same results whether you execute the PV CPUID or the native one.
So virt-what's trick of comparing the two CPUID results to determine if you're in a PV or an HVM domain doesn't work anymore.
-George
Thanks for the reply George. Is there any other easy way in the domU to know if it's a pv or hvm with Xen 4.2+ and the right hardware?
Karl
On Thu, Jul 03, 2014 at 11:42:25AM -0400, Karl Johnson wrote:
Thanks for the reply George. Is there any other easy way in the domU to know if it's a pv or hvm with Xen 4.2+ and the right hardware?
Did you try dmidecode?
-- Pasi
Karl