[solved] How to tell whether CPU supports x64?

Tait freebsd at t41t.com
Fri Mar 18 11:02:52 UTC 2011

The original system...

I said (on 2011/03/17):
>   CPU: Intel(R) Xeon(TM) CPU 2.40GHz (2387.76-MHz 686-class CPU)
>   Origin = "GenuineIntel"  Id = 0xf29  Stepping = 9
>   Features2=0x4400<CNTX-ID,<b14>>
>   Logical CPUs per core: 2
>   FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
>   cpu0 (BSP): APIC ID:  0
>   cpu1 (AP): APIC ID:  1

Adam Vande More <amvandemore_gmail.com> replied (on 2011/03/17):
> On Thu, Mar 17, 2011 at 5:14 PM, Ilya Kazakevich <kazakevichilya_gmail.com>wrote:
> > Afaik there should be "LM" in "AMD features" output. Even for Intel. Grep
> > your dmesg.boot for LM.
> yes that is correct, LM stands for Long Mode which indicates amd64 support.
> If your CPU doesn't list it, it's either a 32 bit only CPU, or it's a bug.

Thanks everyone for the assistance. There is no LM feature in
dmesg.boot for the system in question, although a different system
	CPU: Intel(R) Xeon(R) CPU           E5520  @ 2.27GHz (2261.03-MHz 686-class CPU)
	Origin = "GenuineIntel"  Id = 0x106a5  Stepping = 5
	AMD Features=0x20100000<NX,LM>
	AMD Features2=0x1<LAHF>
	Cores per package: 16
	Logical CPUs per core: 2

The Intel site does say the E5520 supports x64. It seems the lack of LM
in the original system does in fact mean it's a 32-bit only processor.

John Levine <johnl_iecc.com> replied (on 2011/03/17):
> Looking at the Intel web site, the only Xeon I see that runs at 2.4GHz
> and has two cores with two threads is the Xeon 3060, which does indeed
> provide the 64 bit instruction set.

I looked at the ark.intel.com site hoping to find what processor
would report Id = 0xf29  Stepping = 9. I had no luck. I think the
dual processors is because of HyperThreading, as indicated by the
HTT feature, and that it's actually only a single core.

Devin Teske <dteske_vicor.com> replied (on 2011/03/17):
> I wrote this for the job (please, suggestions/comments very welcome):
> #include <stdio.h>                /* printf(3) */
> #include <stdlib.h>               /* EXIT_SUCCESS exit(3) */
> ...

I tried the program, and it reports "x86_64 support: NO" on both the
original system, and the one above that appears to be x64-capable
(although it is running the i386 install, which may be why?).

Again, thanks all for the help.

More information about the freebsd-questions mailing list