====== CPUInfo 1.0-Prerelease ====== The idea behind [[en:projects:cpuinfo|cpuinfo]] was to gather any useful information from new processors we were receiving at Mandriva. By useful information, I mean for me at least, i.e. caches hierarchy, multicore and hyperthreading configurations, processor name generation matching the AMD revision guides, new processor capabilities (e.g. VMX, SVM, SSSE3). Then, once the specs go public, I usually send patches to Dave Jones for [[http://www.codemonkey.org.uk/|x86info]], although sometimes in crippled form. ;-) The initial workplace was derived from the UAE-JIT processor detection code. I then decided to rewrite it in a cleaner way, with a focus of being extensible and reusable from other programs: (i) build it from a common API/library, (ii) use it through appropriate bindings where needed. cpuinfo was born! And finally, other architectures were added to cover x86, x86_64, ia64, ppc, ppc64, mips. Bindings are currently missing though. I don't know if people will use it, but at least it was a nice thing to play with, i.e. read a lot of processor documentation! Note this a **secondary**/toy project. This means it's not something to be actively maintained but I'd rather accept patches. I will soon no longer be able to match new processors anyway ([[en:blog:2007:04:01:introduction|see here for a plan and reasons]]). There is a ''TODO'' file available in the sources distribution for interested developers. Note: if you believe ''cpuinfo'' reports incorrect information, please send relevant data and the output of: cpuinfo --debug People like examples, here are a few outputs from various systems: * My good-old Mandriva Linux 2005LE system Processor Information Model: AMD Athlon 64 3200+, 1.99 GHz Package: Socket 939, 1 Core Processor Caches L1 code cache, 64 KB L1 data cache, 64 KB L2 unified cache, 512 KB Processor Features 64bit 64-bit capable simd SIMD capable [x86] -- x86-specific features -- cmov Conditional Moves mmx MMX Technology sse SSE Technology sse2 SSE2 Technology lm Long Mode (64-bit capable) lahf_lm LAHF/SAHF Supported in 64-bit mode * The newer MacBook... Processor Information Model: Intel Core 2 T7200, 2.00 GHz Package: 2 Cores Processor Caches L1 code cache, 32 KB L1 data cache, 32 KB L2 unified cache, 4 MB Processor Features 64bit 64-bit capable simd SIMD capable [x86] -- x86-specific features -- cmov Conditional Moves mmx MMX Technology sse SSE Technology sse2 SSE2 Technology pni SSE3 Technology (Prescott New Instructions) mni SSSE3 Technology (Merom New Instructions) vmx Intel Virtualisation Technology (VT) lm Long Mode (64-bit capable) lahf_lm LAHF/SAHF Supported in 64-bit mode * ... that replaces the aging PowerBook G4 Processor Information Model: Motorola PowerPC 7410, 400 MHz Package: 1 Core Processor Caches L1 code cache, 32 KB L1 data cache, 32 KB L2 unified cache, 1 MB Processor Features simd SIMD capable [ppc] -- ppc-specific features -- vmx Vector instruction set (AltiVec, VMX) * One of the Itanium platforms available at [[http://www.testdrive.hp.com/|HP TestDrive]] Processor Information Model: Intel Itanium 2 'McKinley', 1.40 GHz Package: 1 Core Processor Caches L1 code cache, 16 KB L1 data cache, 16 KB L2 unified cache, 256 KB L3 unified cache, 1.50 MB Processor Features [ia64] -- ia64-specific features -- lb Long branch (brl) instruction available * A 16-way MIPS system available at SGI: Processor Information Model: MIPS Technologies R12000, 400 MHz Package: 1 Core Processor Caches L1 code cache, 32 KB L1 data cache, 32 KB L2 unified cache, 8 MB Processor Features [mips] -- mips-specific features -- {{tag>projects cpuinfo}}