diff options
| -rw-r--r-- | Documentation/cputopology.txt | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/Documentation/cputopology.txt b/Documentation/cputopology.txt index c6e7e9196a8b..cb61277e2308 100644 --- a/Documentation/cputopology.txt +++ b/Documentation/cputopology.txt | |||
| @@ -3,79 +3,79 @@ How CPU topology info is exported via sysfs | |||
| 3 | =========================================== | 3 | =========================================== |
| 4 | 4 | ||
| 5 | Export CPU topology info via sysfs. Items (attributes) are similar | 5 | Export CPU topology info via sysfs. Items (attributes) are similar |
| 6 | to /proc/cpuinfo output of some architectures: | 6 | to /proc/cpuinfo output of some architectures. They reside in |
| 7 | /sys/devices/system/cpu/cpuX/topology/: | ||
| 7 | 8 | ||
| 8 | 1) /sys/devices/system/cpu/cpuX/topology/physical_package_id: | 9 | physical_package_id: |
| 9 | 10 | ||
| 10 | physical package id of cpuX. Typically corresponds to a physical | 11 | physical package id of cpuX. Typically corresponds to a physical |
| 11 | socket number, but the actual value is architecture and platform | 12 | socket number, but the actual value is architecture and platform |
| 12 | dependent. | 13 | dependent. |
| 13 | 14 | ||
| 14 | 2) /sys/devices/system/cpu/cpuX/topology/core_id: | 15 | core_id: |
| 15 | 16 | ||
| 16 | the CPU core ID of cpuX. Typically it is the hardware platform's | 17 | the CPU core ID of cpuX. Typically it is the hardware platform's |
| 17 | identifier (rather than the kernel's). The actual value is | 18 | identifier (rather than the kernel's). The actual value is |
| 18 | architecture and platform dependent. | 19 | architecture and platform dependent. |
| 19 | 20 | ||
| 20 | 3) /sys/devices/system/cpu/cpuX/topology/book_id: | 21 | book_id: |
| 21 | 22 | ||
| 22 | the book ID of cpuX. Typically it is the hardware platform's | 23 | the book ID of cpuX. Typically it is the hardware platform's |
| 23 | identifier (rather than the kernel's). The actual value is | 24 | identifier (rather than the kernel's). The actual value is |
| 24 | architecture and platform dependent. | 25 | architecture and platform dependent. |
| 25 | 26 | ||
| 26 | 4) /sys/devices/system/cpu/cpuX/topology/drawer_id: | 27 | drawer_id: |
| 27 | 28 | ||
| 28 | the drawer ID of cpuX. Typically it is the hardware platform's | 29 | the drawer ID of cpuX. Typically it is the hardware platform's |
| 29 | identifier (rather than the kernel's). The actual value is | 30 | identifier (rather than the kernel's). The actual value is |
| 30 | architecture and platform dependent. | 31 | architecture and platform dependent. |
| 31 | 32 | ||
| 32 | 5) /sys/devices/system/cpu/cpuX/topology/thread_siblings: | 33 | thread_siblings: |
| 33 | 34 | ||
| 34 | internal kernel map of cpuX's hardware threads within the same | 35 | internal kernel map of cpuX's hardware threads within the same |
| 35 | core as cpuX. | 36 | core as cpuX. |
| 36 | 37 | ||
| 37 | 6) /sys/devices/system/cpu/cpuX/topology/thread_siblings_list: | 38 | thread_siblings_list: |
| 38 | 39 | ||
| 39 | human-readable list of cpuX's hardware threads within the same | 40 | human-readable list of cpuX's hardware threads within the same |
| 40 | core as cpuX. | 41 | core as cpuX. |
| 41 | 42 | ||
| 42 | 7) /sys/devices/system/cpu/cpuX/topology/core_siblings: | 43 | core_siblings: |
| 43 | 44 | ||
| 44 | internal kernel map of cpuX's hardware threads within the same | 45 | internal kernel map of cpuX's hardware threads within the same |
| 45 | physical_package_id. | 46 | physical_package_id. |
| 46 | 47 | ||
| 47 | 8) /sys/devices/system/cpu/cpuX/topology/core_siblings_list: | 48 | core_siblings_list: |
| 48 | 49 | ||
| 49 | human-readable list of cpuX's hardware threads within the same | 50 | human-readable list of cpuX's hardware threads within the same |
| 50 | physical_package_id. | 51 | physical_package_id. |
| 51 | 52 | ||
| 52 | 9) /sys/devices/system/cpu/cpuX/topology/book_siblings: | 53 | book_siblings: |
| 53 | 54 | ||
| 54 | internal kernel map of cpuX's hardware threads within the same | 55 | internal kernel map of cpuX's hardware threads within the same |
| 55 | book_id. | 56 | book_id. |
| 56 | 57 | ||
| 57 | 10) /sys/devices/system/cpu/cpuX/topology/book_siblings_list: | 58 | book_siblings_list: |
| 58 | 59 | ||
| 59 | human-readable list of cpuX's hardware threads within the same | 60 | human-readable list of cpuX's hardware threads within the same |
| 60 | book_id. | 61 | book_id. |
| 61 | 62 | ||
| 62 | 11) /sys/devices/system/cpu/cpuX/topology/drawer_siblings: | 63 | drawer_siblings: |
| 63 | 64 | ||
| 64 | internal kernel map of cpuX's hardware threads within the same | 65 | internal kernel map of cpuX's hardware threads within the same |
| 65 | drawer_id. | 66 | drawer_id. |
| 66 | 67 | ||
| 67 | 12) /sys/devices/system/cpu/cpuX/topology/drawer_siblings_list: | 68 | drawer_siblings_list: |
| 68 | 69 | ||
| 69 | human-readable list of cpuX's hardware threads within the same | 70 | human-readable list of cpuX's hardware threads within the same |
| 70 | drawer_id. | 71 | drawer_id. |
| 71 | 72 | ||
| 72 | To implement it in an architecture-neutral way, a new source file, | 73 | Architecture-neutral, drivers/base/topology.c, exports these attributes. |
| 73 | drivers/base/topology.c, is to export the 6 to 12 attributes. The book | 74 | However, the book and drawer related sysfs files will only be created if |
| 74 | and drawer related sysfs files will only be created if CONFIG_SCHED_BOOK | 75 | CONFIG_SCHED_BOOK and CONFIG_SCHED_DRAWER are selected, respectively. |
| 75 | and CONFIG_SCHED_DRAWER are selected. | ||
| 76 | 76 | ||
| 77 | CONFIG_SCHED_BOOK and CONFIG_DRAWER are currently only used on s390, where | 77 | CONFIG_SCHED_BOOK and CONFIG_SCHED_DRAWER are currently only used on s390, |
| 78 | they reflect the cpu and cache hierarchy. | 78 | where they reflect the cpu and cache hierarchy. |
| 79 | 79 | ||
| 80 | For an architecture to support this feature, it must define some of | 80 | For an architecture to support this feature, it must define some of |
| 81 | these macros in include/asm-XXX/topology.h:: | 81 | these macros in include/asm-XXX/topology.h:: |
| @@ -98,10 +98,10 @@ To be consistent on all architectures, include/linux/topology.h | |||
| 98 | provides default definitions for any of the above macros that are | 98 | provides default definitions for any of the above macros that are |
| 99 | not defined by include/asm-XXX/topology.h: | 99 | not defined by include/asm-XXX/topology.h: |
| 100 | 100 | ||
| 101 | 1) physical_package_id: -1 | 101 | 1) topology_physical_package_id: -1 |
| 102 | 2) core_id: 0 | 102 | 2) topology_core_id: 0 |
| 103 | 3) sibling_cpumask: just the given CPU | 103 | 3) topology_sibling_cpumask: just the given CPU |
| 104 | 4) core_cpumask: just the given CPU | 104 | 4) topology_core_cpumask: just the given CPU |
| 105 | 105 | ||
| 106 | For architectures that don't support books (CONFIG_SCHED_BOOK) there are no | 106 | For architectures that don't support books (CONFIG_SCHED_BOOK) there are no |
| 107 | default definitions for topology_book_id() and topology_book_cpumask(). | 107 | default definitions for topology_book_id() and topology_book_cpumask(). |
