Messages in this thread | | | Date | Fri, 25 Oct 2002 01:47:09 +0100 | From | Andrew Walrond <> | Subject | Re: How to get number of physical CPU in linux from user space? |
| |
I rebuilt 2.5.44 with the ACPI stuff enabled, and I see 2 cpus in /proc/cpuinfo:
daedalus@hercules daedalus $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) XEON(TM) CPU 2.20GHz stepping : 4 cpu MHz : 2200.469 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes 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 bogomips : 4341.76
processor : 1 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) XEON(TM) CPU 2.20GHz stepping : 4 cpu MHz : 2200.469 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes 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 bogomips : 4390.91
Also dmesg says:
daedalus@hercules daedalus $ dmesg 1462.55 usecs. task migration cache decay timeout: 2 msecs. enabled ExtINT on CPU#0 ESR value before enabling vector: 00000000 ESR value after enabling vector: 00000000 Booting processor 1/1 eip 2000 Initializing CPU#1 masked ExtINT on CPU#1 ESR value before enabling vector: 00000000 ESR value after enabling vector: 00000000 Calibrating delay loop... 4390.91 BogoMIPS CPU: Before vendor init, caps: 3febfbff 00000000 00000000, vendor = 0 CPU: Trace cache: 12K uops, L1 D cache: 8K CPU: L2 cache: 512K CPU: Physical Processor ID: 0 CPU: After vendor init, caps: 3febfbff 00000000 00000000 00000000 Intel machine check reporting enabled on CPU#1. CPU#1: Intel P4/Xeon Extended MCE MSRs (12) available CPU#1: Thermal monitoring enabled CPU: After generic, caps: 3febfbff 00000000 00000000 00000000 CPU: Common caps: 3febfbff 00000000 00000000 00000000 CPU1: Intel(R) XEON(TM) CPU 2.20GHz stepping 04 Total of 2 processors activated (8732.67 BogoMIPS).
And a bit further down...
checking TSC synchronization across 2 CPUs: passed. Starting migration thread for cpu 0 Bringing up 1 CPU 1 IS NOW UP! Starting migration thread for cpu 1 CPUS done 4294967295
And down some more we seem to have 4 cpus...
ACPI: Processor [CPU0] (supports C1) ACPI: Processor [CPU1] (supports C1) ACPI: Processor [CPU2] (supports C1) ACPI: Processor [CPU3] (supports C1)
I think with ACPI disabled I had 4 processors listed in /proc/cpuinfo, but I'll check.
chrisl@vmware.com wrote:
>It seems that /proc/cpuinfo will return the number of logical CPU. >If the machine has Intel Hyper-Thread enabled, that number is bigger >than physical CPU number. Usually twice as big. > >My question is, what is the reliable way for user space program >to detect the number of physical CPU in the current machine? > >If in it is in the kernel, I can read from cpu_sibling_map[] >or phys_cpu_id[]. But it seems not easy read that from >user space. > >Of course I can do "gdb /proc/kcore" to get them. But is there >any better way? > >Thanks in advance. > >Chris > > > >- >To unsubscribe from this list: send the line "unsubscribe linux-kernel" in >the body of a message to majordomo@vger.kernel.org >More majordomo info at http://vger.kernel.org/majordomo-info.html >Please read the FAQ at http://www.tux.org/lkml/ > > >
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |