Linux: Find Out If CPU Support Intel VT and AMD-V Virtualization Support

Posted on in Categories , , last updated March 31, 2017

How do I find out if my system support Intel – VT / AMD -V hardware virtualization extensions for host CPU using the command line options? How do I check if my Linux hardware from HP/IBM/Dell supports virtualization?

Both Intel and AMD CPU support virtualization technology which allows multiple operating systems to run simultaneously on an x86 server or computer in a safe and efficient manner using hardware virtualization. XEN, KVM and other virtualization software can use Intel and AMD hardware virtualization for full virtualization. In other words with Intel VT, or AMD-V you can run an unmodified guest OS, like MS-Windows without any problems.

Say hello to /proc/cpuinfo file

The /proc/cpuinfo file has information about your CPU. The information includes, the number of CPUs, threads, cores, sockets, and Non-Uniform Memory Access (NUMA) nodes. There is also formation about the CPU caches and cache sharing, family, model, bogoMIPS, byte order, and stepping. You need to note down the following vendor specific cpu flags:

Am I using 64 bit CPU/system [x86_64/AMD64/Intel64]?

  1. lm – If you see lm flag means you’ve 64 bit Intel or AMD cpu.

Do I have hardware virtualization support?

  1. vmx – Intel VT-x, virtualization support enabled in BIOS.
  2. svm – AMD SVM,virtualization enabled in BIOS.

Do I have hardware AES/AES-NI advanced encryption support?

  1. aes – Applications performing encryption and decryption using the Advanced Encryption Standard on Intel and AMD cpus.

Commands to check if your hardware supports virtualization

Use the following commands to verify if hardware virtualization extensions is enabled or not in your BIOS.

Verify Intel VT CPU virtualization extensions on a Linux

Type the following command as root to verify that host cpu has support for Intel VT technology, enter:
# grep --color vmx /proc/cpuinfo
Sample outputs:

Fig.01: Linux check Intel VT -  if my server can run full virtualization or not
Fig.01: Linux check Intel VT - if my server can run full virtualization or not

If the output has the vmx flags, then Intel CPU host is capable of running hardware virtualization.

Verify AMD V CPU virtualization extensions on a Linux

Type the following command as root to verify that host cpu has support for AMD – V technology:
# grep --color svm /proc/cpuinfo
Again, the output has the svm flags, then AND CPU host is capable of running hardware virtualization.

Verify Intel or AMD 64 bit CPU

Type the following grep command:

grep -w -o lm /proc/cpuinfo  | uniq

See our tutorial “Find If Processor (CPU) is 64 bit / 32 bit on a Linux” for more info.

lscpu command

The lscpu command shows CPU architecture information on a Linux server:


Sample outputs:

Fig.02: lscpu command on a Linux server to find out Virtualization support
Fig.02: lscpu command on a Linux server to find out Virtualization support

Putting it all together

Type the following egrep command:

egrep -wo 'vmx|ept|vpid|npt|tpr_shadow|flexpriority|vnmi|lm|aes' /proc/cpuinfo 
## Only show Intel CPU flags ##
egrep -wo 'vmx|ept|vpid|npt|tpr_shadow|flexpriority|vnmi|lm|aes' /proc/cpuinfo  | sort | uniq
## OR better use the following ##
egrep -wo 'vmx|lm|aes' /proc/cpuinfo  | sort | uniq\
| sed -e 's/aes/Hardware encryption=Yes (&)/g' \
-e 's/lm/64 bit cpu=Yes (&)/g' -e 's/vmx/Intel hardware virtualization=Yes (&)/g'

Sample outputs:

Fig.03: Finding Intel virtualization, encryption and 64 bit cpu in a single command
Fig.03: Finding Intel virtualization, encryption and 64 bit cpu in a single command

Additional Intel x86 CPU specific virtualization flags

  1. ept – Intel extended page table support enabled to make emulation of guest page tables faster.
  2. vpid – Intel virtual processor ID. Make expensive TLB flushes unnecessary when context switching between guests.
  3. tpr_shadow and flexpriority – Intel feature that reduces calls into the hypervisor when accessing the Task Priority Register, which helps when running certain types of SMP guests.
  4. vnmi – Intel Virtual NMI helps with selected interrupt events in guests.

Additional AMD x86 CPU specific virtualization flags

  1. npt – AMD Nested Page Tables, similar to Intel EPT.
  2. lbrv – AMD LBR Virtualization support.
  3. svm_lock – AMD SVM locking MSR.
  4. nrip_save – AMD SVM next_rip save.
  5. tsc_scale – AMD TSC scaling support.
  6. vmcb_clean – AMD VMCB clean bits support.
  7. flushbyasid – AMD flush-by-ASID support.
  8. decodeassists – AMD Decode Assists support.
  9. pausefilter – AMD filtered pause intercept.
  10. pfthreshold – AMD pause filter threshold.

Tip #1: See Linux kernel messages

Type the following command to see kvm support enabled or not in BIOS:
# dmesg | less
# dmesg | grep -i kvm

Tip # 2: Check your BIOS settings

By default, many system manufacturers disables an AMD or Intel hardware CPU virtualization technology in the BIOS. You need to reboot the system and turn it in the BIOS. Once turned on, run lscpu or grep command as discussed earlier to see if your virtualization support enabled:
$ lscpu
$ egrep -wo 'vmx|ept|vpid|npt|tpr_shadow|flexpriority|vnmi|lm|aes' /proc/cpuinfo | sort | uniq

Tip # 3: XEN Kernel

By default, if you booted into XEN kernel it will not display svm or vmx flag using the grep command. To see if it is enabled or not from xen, enter:
cat /sys/hypervisor/properties/capabilities
You must see hvm flags in the output. If not reboot the box and set Virtualization in the BIOS.


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

24 comment

  1. Useful topic, thanks Vivek, and I didn’t know of “–color” fro grep, nice too.
    Please give us some more topics related to virtualization, pleeeease !!! :-)
    — Philippe

    1. We have covered XEN, Vmware server and OpenVZ in the past.

      However, I’m going to write a bit about central storage for VM, VM live migration, KVM (which seems like a winner to me), VM security & advanced networking in coming days. Let me know if you want to see any specific topics here or at vivek at nixcraft dot com.


  2. It is possible that your processor supports virtualization while BIOS disables it (as mentioned) but have no option to enable it! That was the case with my Acer Aspire L5100.

    I wrote about this problem and how I solved it:

    1. Interesting read; this is the main reason why I stick to Intel or Supermicro motherboards for server usage They never do this kind of silly stuff. I paid for it and I’ve full right to use hardware.

  3. Vivek, how do I find if my processor can use a 64-bit version of Arch Linux or for that matter any Linux ? I got from my vendor as 32-bit. Someone on IRC told me something similar. Please help me out.

        1. Thanks Solaris I did find it useful…. I was unable to run virtual machine on my comp and was thinking that there is problem with my installation but then kvm-ok returned that virtualization is disabled from my BIOS…

  4. hi ,if am planing to run full virtulasions ,do i need intel VT or AMD-V to make that work ?

      1. Shouldn’t it be possible to use paravirtualization? Will need tweaked kernels but those are available.

        – Milind

  5. Hey,

    What about taking many physical servers and making from them a single “super server” via Xen/VMware? Is there any article/guide that explains how to do so?

    * When I say “super server” I mean to take 1 physical server and make him the “master” (where the OS sitting on, i.e – linux) and the other pysical servers are the “guest” (they have no OS (or just not regular OS, i.e – linux)

    Thanks ;-)

  6. actually i am new to this tech stuff. i dont know whats all this about but want to know more. were do you write these commands if you are running windows xp

  7. ok, so I have the exact same CPU, Intel E8400, that you have. I have enabled Virtualization Technology in the BIOS. But I still do not see, vmx, when do this: grep –color vmx /proc/cpuinfo

    But I do see hvm when do this:
    > cat /sys/hypervisor/properties/capabilities
    > xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
    What does this mean? I have VMX or I don’t ?
    Though I have compiled the linux kernel 3.0, is it possible that it might be disabled in the kernel?

  8. hi
    i am running vmware workstation 9.0.2 on windows 7 host .
    i have installed ubuntu 10.04 in it and also rhel 6 .. and when i enter the above command in any of these guest oses i dont see the vmx flag ? am i suppose to not see it in guest oses ?

    my system is dell optiplex 755 . cpu is e6550 . and board supports virtualization and is enabled .

  9. I have 64bit dell machine with VT support. I have enabled it in BIOS, but “vmx” flag is missing from cpuinfo. I am using fedora 20 . The uname o/p below –
    Linux localhost.localdomain 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

    Can somebody help with this.

  10. Vivek, this is great information. Thank you. Let’s say I’m running a Linux guest on a recent x86 model that contains hardware crypto instructions. Does the presence of the aes flag mean that from my guest, if I call the crypto library to, say, encrypt a buffer, that it means that the call will go directly to the hardware from my guest, or does that sort of call always get passed through KVM first? Thanks!

  11. I have VT disabled by BIOS and vmx is still reported by /proc/cpuinfo. Kvm-ok seems to be the best test for this case. And it works just fine on Red Hat/CentOS/etc. (I installed the msr-tools RPM from EPEL to provide the rdmsr binary.) This is necessary for the check to determine if VT is supported, but disabled in BIOS.

Comments are closed.