[dvlug] 64 vs. 32 bit

Rick Moen rick at linuxmafia.com
Tue May 3 14:50:27 PDT 2011


Quoting Grant Bowman (grantbow at ubuntu.com):

> A question came up the other day about 32 vs. 64 bit computers. To
> check you can either cat /proc/cpuinfo or just try booting a 64 bit
> image on your eee Intel Atom.

Specifically, /proc/cpuinfo's 'flags' record should include the 'lm' 
field, which stands for 'long mode', which is a kernel signifer for
either AMD's AMD64 extensions or Intel's EM64T ones.[1]  Support for
this has been in Linux kernels since the 2.4 series in 2001 (and indeed
was already supported when AMD64 existed only in simulators).

Here's an example on a dual-core machine:

~$ cat /proc/cpuinfo | grep ^flags
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 pbe nx lm constant_tsc pebs bts pni monitor ds_cpl est cid cx16 xtpr
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 pbe nx lm constant_tsc pebs bts pni monitor ds_cpl est cid cx16 xtpr


A similar question that sometimes arises is whether one's CPU includes
the necessary hardware instructions to support hardware virtualisation
(as opposed to paravirtualisation):  VT-x (aka Vanderpool) processor
instructions on Intel, or AMD-V (aka SVM) instructions on AMD Opteron.
Full hardware virtualisation lets you run completely unmodified guest
OSes in the virtual machine.  You can tell by looking at the "flags"
listing in /proc/cpuinfo:

Intel:  "vmx" flag (requires kernel 2.6.15 or later)
AMD:    "svm" flag (requires kernel 2.6.16 or later)


[1] Quibble:  You don't mean 64 versus 32-bit in the general sense, just 
x86 vs x86_64.  E.g., 'lm' wouldn't be present on a SPARC64.




More information about the dvlug mailing list