[PATCH] NLM: Ensure we do not Oops in the case of an unlock
[linux/fpc-iii.git] / Documentation / cputopology.txt
blobff280e2e1613e808e4d7844376134dfa2bb1fc21
2 Export cpu topology info by sysfs. Items (attributes) are similar
3 to /proc/cpuinfo.
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;
14 To implement it in an architecture-neutral way, a new source file,
15 driver/base/topology.c, is to export the 5 attributes.
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)
25 The type of **_id is int.
26 The type of siblings is cpumask_t.
28 To be consistent on all architectures, the 4 attributes should have
29 deafult 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.
38 So be careful when declaring the 4 defines in include/asm-XXX/topology.h.
40 If an attribute isn't defined on an architecture, it won't be exported.