SEARCH

How-To Geek

Linux Tip: How to Tell if Your Processor Supports VT

Virtualization Technology (VT) is a set of enhancements to newer processors that improve performance for running a virtual machine by offloading some of the work to the new cpu extensions. Both AMD and Intel have processors that support this technology, but how do you tell if your system can handle it?

It’s quite simple: We’ll need to take a peek inside the /proc/cpuinfo file and look at the flags section for one of two values, vmx or svm.

  • vmx – (intel)
  • svm – (amd)

You can use grep to quickly see if either value exists in the file by running the following command:

egrep ‘(vmx|svm)’ /proc/cpuinfo

If your system supports VT, then you’ll see vmx or svm in the list of flags. My system has two processors, so there are two separate sections:

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

VT technology can still be disabled in your computer’s BIOS, however, so you’ll want to check there to make sure that it hasn’t been disabled. The flags in cpuinfo simply mean that your processor supports it.

From my research, VT is required in order to run 64-bit guests under the free VMware server for linux… so it would logically follow that if you can do so, VT is enabled.

32-bit VT is not enabled by default under VMware server. If you want to enable it, you need to add the following line to your *.vmx file for your virtual machine:

monitor_control.vt32 = TRUE

VMware does not recommend that you use VT for 32-bit guests, because they say it will actually hurt performance.

Lowell Heddings, better known online as the How-To Geek, spends all his free time bringing you fresh geekery on a daily basis. You can follow him on if you'd like.

  • Published 08/27/07

Comments (7)

  1. jambarama

    It looks to me that the VT extensions bit-size capability (32 or 64) is relevant to the physical processor, not to the guest. So enabling 32 bit extension on a 64 bit machine will definitely hurt performance (just like running a 32 bit OS on a 64 bit processor will hurt performance). It seems they are just a set of instructions used by VMs to reduce the performance hit from emulating x86 systems on x86 systems.

    The list of virtual solutions using these extensions where possible is a virtual who’s who among VM software: vmware (esx/server/player), virtual box, xen, virtual iron, virtual pc, parallels, and others. More surprising to me is that kvm uses it and not qemu (maybe that is the closed source part of kvm).

    From Wikipedia: http://en.wikipedia.org/wiki/X86_virtualization
    Intel VT (IVT)
    Intel’s virtualization extension for 32-bit and 64-bit x86 architecture is named IVT (short for Intel Virtualization Technology). The 32-bit or IA-32 IVT extensions are referred to as VT-x. Intel has also published specifications for IVT for the IA-64 (Itanium) processors which are referred to as VT-i.

    Intel VT was launched at the Intel Developer Forum Spring 2005. It is available on certain Pentium 4 6×1 and 6×2 models[2], Pentium D 9×0[1], Xeon 3xxx/5xxx/7xxx, Core Duo (excluding T2300E) and Core 2 Duo processors (excluding the T5200, T5250, T5300, T5450, T5470, T5500, E4x00, E2xx0). On some implementations, IVT support may be switched off in the Firmware. This can be determined by checking if the VMX flag is enabled by the Feature Control MSR.

    Documentation on the Intel website has stated that VT requires not only support from the processor, but also support from the chipset, BIOS, and perhaps software. Intel plans to add a technology named Virtualization for Directed I/O (VT-d) to VT. This provides a way of configuring interrupt delivery to individual virtual machines and an IOMMU for preventing a virtual machine from using DMA to break isolation.

    AMD virtualization (AMD-V) – SVM stands for “secure virtual machine)
    AMD’s virtualization extensions to the 64-bit x86 architecture is named AMD Virtualization, abbreviated AMD-V. AMD-V is present in all K8 AMD (Athlon 64) processors from stepping “F” and all newer processors support AMD-V technology. This applies for all current Socket AM2 and Socket F processors.

    Not from Wikipedia: It looks to me that the VT extensions bit-size capability (32 or 64) is determined by the processor, not by the guest. So enabling 32 bit extension on a 64 bit machine will definitely hurt performance (just like running a 32 bit OS on a 64 bit processor will hurt performance). It seems they are just a set of instructions used by VMs to reduce the performance hit from emulating x86 systems on x86 systems.

    The list of virtual solutions using these extensions where possible is a virtual who’s who among VM software: vmware (esx/server/player), virtual box, xen, virtual iron, virtual pc, parallels, and others. More surprising to me is that kvm uses it and not qemu (maybe that is the closed source part of kvm).

  2. The Geek

    Great comment…

    It’s always nice when the readers add helpful information to the discussion, so thanks!

  3. Robert Brockway

    Nothing in Qemu is non-open source anymore. In the past only kqemu kernel module was not OSS – the source code was available but the old licence was restrictive. This is all over with now. I understand the KVM developers are keen to merge their work with Qemu so I expect we’ll see h/w virtualisation support in Qemu soon.

  4. Akshay Dayal

    Is there any way to check if VT is enabled in the BIOS? Through a command line check?

  5. Ben Perove

    Dell Bios (at least rev. A10) includes a Virtualization option where you can enable the extensions or turn them off (default). Without them, ESX server boots in 5 hours instead of 2 minutes.

  6. Rama

    My “flags” don’t look like your’s. Please see below, do I CPU virtualization support or not?

    flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
    flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy

    Thanks!

  7. Truin

    Rama – your chip appears to be an AMD. For AMD processors, the flag is “svm”, which does show up in your flags list. However, as stated previously, this only indicates that your CPU is capable of hardware virtualization. You’ll still want to check your system BIOS to make sure it’s enabled – many manufacturers disable this on desktop machines.

Get Free Articles in Your Inbox!

Join 134,000 newsletter readers

Email:

Go check your email!