What is the equivalent of /proc/cpuinfo on FreeBSD v8.1?
I don’t believe there is anything as detailed as Linux’s /proc/cpuinfo
. Look into sysctl hw
and /var/run/dmesg.boot
. Most of the information like CPU speed and instruction sets should be in there somewhere.
This is what I see (with a few uninteresting hw.*
fields removed):
$ uname -srFreeBSD 4.10-RELEASE$ grep -i cpu /var/run/dmesg.boot CPU: Pentium III/Pentium III Xeon/Celeron (448.97-MHz 686-class CPU)$ /sbin/sysctl hwhw.machine: i386hw.model: Pentium III/Pentium III Xeon/Celeronhw.ncpu: 1hw.byteorder: 1234hw.physmem: 665989120hw.usermem: 604614656hw.pagesize: 4096hw.floatingpoint: 1hw.machine_arch: i386hw.aac.iosize_max: 65536hw.an.an_dump: offhw.an.an_cache_mode: dbmhw.an.an_cache_mcastonly: 0hw.an.an_cache_iponly: 1hw.fxp_rnr: 0hw.fxp_noflow: 0hw.dc_quick: 1hw.ste.rxsyncs: 0hw.instruction_sse: 0hw.availpages: 162432
(Note that on OpenBSD, the cpu speed is found in hw.cpuspeed
instead of in dmesg.)
Use dmidecode
command:
# dmidecode -t processor -t cache# dmidecode 3.0Scanning /dev/mem for entry point.SMBIOS 2.4 present.Handle 0x0004, DMI type 4, 35 bytesProcessor Information Socket Designation: LGA 775 Type: Central Processor Family: Pentium 4 Manufacturer: Intel ID: F6 06 00 00 FF FB EB BF Signature: Type 0, Family 6, Model 15, Stepping 6 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) PSE-36 (36-bit page size extension) CLFSH (CLFLUSH instruction supported) DS (Debug store) ACPI (ACPI supported) MMX (MMX technology supported) FXSR (FXSAVE and FXSTOR instructions supported) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) SS (Self-snoop) HTT (Multi-threading) TM (Thermal monitor supported) PBE (Pending break enabled) Version: Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz Voltage: 1.4 V External Clock: 266 MHz Max Speed: 3800 MHz Current Speed: 2394 MHz Status: Populated, Enabled Upgrade: Other L1 Cache Handle: 0x0005 L2 Cache Handle: 0x0006 L3 Cache Handle: 0x0007 Serial Number: To Be Filled By O.E.M. Asset Tag: To Be Filled By O.E.M. Part Number: To Be Filled By O.E.M.Handle 0x0005, DMI type 7, 19 bytesCache Information Socket Designation: L1-Cache Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal......
Just to add to jleedev’s comment, you can use the sysctl(3)
syscall to get this information out of the kernel from your application. See the CTL_HW
top-level name: