Xen PV DomU Reported As Xen-HVM

Home » CentOS-Virt » Xen PV DomU Reported As Xen-HVM
CentOS-Virt 3 Comments

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 5.X.X.X, vifname=vifvm115.0, mac: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 5.X.X.X, vifname=vifvm116.0, mac: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?

Kinds regards,

Karl

3 thoughts on - Xen PV DomU Reported As Xen-HVM

  • 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