mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
The patch implements cpu topology exportation by sysfs. Items (attributes) are similar to /proc/cpuinfo. 1) /sys/devices/system/cpu/cpuX/topology/physical_package_id: represent the physical package id of cpu X; 2) /sys/devices/system/cpu/cpuX/topology/core_id: represent the cpu core id to cpu X; 3) /sys/devices/system/cpu/cpuX/topology/thread_siblings: represent the thread siblings to cpu X in the same core; 4) /sys/devices/system/cpu/cpuX/topology/core_siblings: represent the thread siblings to cpu X in the same physical package; To implement it in an architecture-neutral way, a new source file, driver/base/topology.c, is to export the 5 attributes. If one architecture wants to support this feature, it just needs to implement 4 defines, typically in file include/asm-XXX/topology.h. The 4 defines are: #define topology_physical_package_id(cpu) #define topology_core_id(cpu) #define topology_thread_siblings(cpu) #define topology_core_siblings(cpu) The type of **_id is int. The type of siblings is cpumask_t. To be consistent on all architectures, the 4 attributes should have deafult values if their values are unavailable. Below is the rule. 1) physical_package_id: If cpu has no physical package id, -1 is the default value. 2) core_id: If cpu doesn't support multi-core, its core id is 0. 3) thread_siblings: Just include itself, if the cpu doesn't support HT/multi-thread. 4) core_siblings: Just include itself, if the cpu doesn't support multi-core and HT/Multi-thread. So be careful when declaring the 4 defines in include/asm-XXX/topology.h. If an attribute isn't defined on an architecture, it won't be exported. Thank Nathan, Greg, Andi, Paul and Venki. The patch provides defines for i386/x86_64/ia64. Signed-off-by: Zhang, Yanmin <yanmin.zhang@intel.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> |
||
|---|---|---|
| .. | ||
| cpufreq | ||
| acpi-ext.c | ||
| acpi-processor.c | ||
| acpi.c | ||
| asm-offsets.c | ||
| brl_emu.c | ||
| cyclone.c | ||
| efi_stub.S | ||
| efi.c | ||
| entry.h | ||
| entry.S | ||
| fsys.S | ||
| gate-data.S | ||
| gate.lds.S | ||
| gate.S | ||
| head.S | ||
| ia64_ksyms.c | ||
| init_task.c | ||
| iosapic.c | ||
| irq_ia64.c | ||
| irq_lsapic.c | ||
| irq.c | ||
| ivt.S | ||
| jprobes.S | ||
| kprobes.c | ||
| machvec.c | ||
| Makefile | ||
| mca_asm.S | ||
| mca_drv_asm.S | ||
| mca_drv.c | ||
| mca_drv.h | ||
| mca.c | ||
| minstate.h | ||
| module.c | ||
| numa.c | ||
| pal.S | ||
| palinfo.c | ||
| patch.c | ||
| perfmon_default_smpl.c | ||
| perfmon_generic.h | ||
| perfmon_itanium.h | ||
| perfmon_mckinley.h | ||
| perfmon_montecito.h | ||
| perfmon.c | ||
| process.c | ||
| ptrace.c | ||
| sal.c | ||
| salinfo.c | ||
| semaphore.c | ||
| setup.c | ||
| sigframe.h | ||
| signal.c | ||
| smp.c | ||
| smpboot.c | ||
| sys_ia64.c | ||
| time.c | ||
| topology.c | ||
| traps.c | ||
| unaligned.c | ||
| uncached.c | ||
| unwind_decoder.c | ||
| unwind_i.h | ||
| unwind.c | ||
| vmlinux.lds.S | ||