Monday, January 19, 2009

intel/amd Hardware virtualization CPU capability

I've often wondered if a computer I'm using (a laptop, or my work desktop) has hardware virtualization support. There are quite a few sites that say "cat /proc/cpuinfo | grep flags and look to see if there are vmx or svm flags in there", e.g.

http://www.linuxtopia.org/HowToGuides/fedora_core_6_xen_quickstart/fedora_core_6_xen_virtualization_how_to_005.html

and

http://www.howtogeek.com/howto/linux/linux-tip-how-to-tell-if-your-processor-supports-vt/

Now I've done that and it's a pain because there are so many flags and they're not in an order that makes it easy to spot the relevant flags. So I did some sed:

cat /proc/cpuinfo | grep flags | sed "s/ /\\n/g" | egrep "(vmx|svm)"

which is more useful since it replaces spaces in the flags with newlines, so that we can then search for just the flags we need and not be confused by the pollution from all the other flags on the line.

Without the trailing egrep I get:

flags :
fpu
vme
de
pse
tsc
msr
pae
mce
cx8
apic
sep
mtrr
pge
mca
cmov
pat
clflush
dts
acpi
mmx
fxsr
sse
sse2
ss
ht
tm
pbe
nx
constant_tsc
arch_perfmon
bts
pni
monitor
vmx
est
tm2
xtpr
flags :
fpu
vme
de
pse
tsc
msr
pae
mce
cx8
apic
sep
mtrr
pge
mca
cmov
pat
clflush
dts
acpi
mmx
fxsr
sse
sse2
ss
ht
tm
pbe
nx
constant_tsc
arch_perfmon
bts
pni
monitor
vmx
est
tm2
xtpr

As it happens, although I *do* have vmx in there, I doubt if it's actually usable. I've got two laptops with vmx enabled, but I expect that the hardware virtualization is disabled in the BIOS, and there's no toggle in the CMOS settings to turn it on. But I'll try to install Xen anyway, and see if it can use the CPU hardware virtualization support :-).

It's too bad that those are my two slower laptops (2.2Ghz and 1.6Ghz). My fastest laptop (3.3Ghz) is the oldest and it definitely doesn't have vmx support in there at all. Ah well, maybe I'll just play with Xen and hardware virtualization on my AMD64 desktop at work.

No comments: