Based on kernel version 2.6.25. Page generated on 2008-04-18 21:22 EST.
1 2 Export cpu topology info via sysfs. Items (attributes) are similar 3 to /proc/cpuinfo. 4 5 1) /sys/devices/system/cpu/cpuX/topology/physical_package_id: 6 represent the physical package id of cpu X; 7 2) /sys/devices/system/cpu/cpuX/topology/core_id: 8 represent the cpu core id to cpu X; 9 3) /sys/devices/system/cpu/cpuX/topology/thread_siblings: 10 represent the thread siblings to cpu X in the same core; 11 4) /sys/devices/system/cpu/cpuX/topology/core_siblings: 12 represent the thread siblings to cpu X in the same physical package; 13 14 To implement it in an architecture-neutral way, a new source file, 15 drivers/base/topology.c, is to export the 4 attributes. 16 17 If one architecture wants to support this feature, it just needs to 18 implement 4 defines, typically in file include/asm-XXX/topology.h. 19 The 4 defines are: 20 #define topology_physical_package_id(cpu) 21 #define topology_core_id(cpu) 22 #define topology_thread_siblings(cpu) 23 #define topology_core_siblings(cpu) 24 25 The type of **_id is int. 26 The type of siblings is cpumask_t. 27 28 To be consistent on all architectures, the 4 attributes should have 29 default values if their values are unavailable. Below is the rule. 30 1) physical_package_id: If cpu has no physical package id, -1 is the 31 default value. 32 2) core_id: If cpu doesn't support multi-core, its core id is 0. 33 3) thread_siblings: Just include itself, if the cpu doesn't support 34 HT/multi-thread. 35 4) core_siblings: Just include itself, if the cpu doesn't support 36 multi-core and HT/Multi-thread. 37 38 So be careful when declaring the 4 defines in include/asm-XXX/topology.h. 39 40 If an attribute isn't defined on an architecture, it won't be exported.