PEPC-TOPOLOGY(1)
π PEPC-TOPOLOGY(1) π
okay bestie, gather round π«Ά this is the manual for the topology command β it lives in the General Commands Manual, section 1, and it's literally the little tool that tells you everything about your CPU's topology. sit down, hydrate, let's go β¨
πΈ Command topology πΈ
no cap, this is the main character. below are the general options it takes, and then the info subcommand that does the actual gossiping about your CPU layout π
π GENERAL OPTIONS π
-hβ show a short help message and dip. bye π-qβ be quiet, bestie. only prints the important stuff (like warnings) π€«-dβ print debugging information. it's giving verbose π--debug-modules MODNAME[,MODNAME1,...]β so the-doption turns on ALL the debug messages, but this one narrows it down to just the modules you name. for example,-d --debug-modules MSRwill only show debug messages from theMSRmodule. obsessed with the precision π--versionβ print the version number and exit. periodt.-H HOSTNAME,--host HOSTNAMEβ host name or IP address of the target system. thepepccommand gets executed on that system using SSH instead of running locally. if you don't specify it, the command just runs locally π-U USERNAME,--username USERNAMEβ the name of the user to use for logging into the remote host over SSH. by default it looks up the user name in SSH configuration files, and if it's not found there, it uses the current user name π-K PRIVKEY,--priv-key PRIVKEYβ path to the private SSH key for logging into the remote host. if you don't specify it, keys configured for the host in SSH configuration files (e.g.~/.ssh/config) are used. if no keys are configured there, standard key files (e.g.~/.ssh/id_rsa) and the SSH agent are tried π-D DATASET,--dataset DATASETβ ok so this one is for debugging and testing, iykyk. it specifies the dataset to use for emulating the host for running the command on. the datasets live in thepepcsource code repository π¦
the argument can be a dataset path or name. if it's specified by name, these locations get searched for the dataset, in order:
./tests/emul-datain the program's directory$PEPC_DATA_PATH/tests/emul-data$VIRTUAL_ENV/share/pepc/tests/emul-data$HOME/.local/share/pepc/tests/emul-data/usr/local/share/pepc/tests/emul-data/usr/share/pepc/tests/emul-data
--force-colorβ force colorized output even if the output stream is not a terminal (adds ANSI escape codes). slay, we love a rainbow that refuses to be silenced π--print-man-pathβ print thepepcmanual pages directory path and exit. add this path to theMANPATHenvironment variable to make the manual pages available to themantool π
π¦ SUBCOMMAND info π¦
display CPU topology details. this is the one that spills all the tea about your cores β
Note 1: the Linux kernel provides topology data only for online CPUs. for offline CPUs, unknown topology values (e.g., package number) are replaced with "?". mystery CPU energy π
Note 2: for non-compute dies (dies without any CPUs, for example I/O dies on Granite Rapids Xeon), CPU, core, and module numbers are shown as "-". not me showing up to the table with nothing to contribute π
Note 3: topology data is read from multiple sources:
- Core and package numbers:
/proc/cpuinfo - Die numbers:
/sys/devices/system/cpu/cpu<N>/topology/die_id - Module numbers:
/sys/devices/system/cpu/cpu<N>/cache/index2/idandshared_cpu_list - NUMA node numbers:
/sys/devices/system/node/node<N>/cpulist - Hybrid core types:
/sys/devices/cpu_core/cpus(P-cores),/sys/devices/cpu_atom/cpus(E-cores),/sys/devices/cpu_lowpower/cpus(LPE-cores, if available; otherwise LPE-cores are identified as CPUs lacking L3 cache, i.e., without/sys/devices/system/cpu/cpu<N>/cache/index3/shared_cpu_list)
β¨ Options for info β¨
--cpus CPUSβ the list can include individual CPU numbers and CPU number ranges. for example,1-4,7,8,10-12would mean CPUs 1 to 4, CPUs 7, 8, and 10 to 12. use the special keywordallto specify all CPUs π--cores CORESβ the list can include individual core numbers and core number ranges. for example,1-4,7,8,10-12would mean cores 1 to 4, cores 7, 8, and 10 to 12. use the special keywordallto specify all cores. core numbers are relative to the package π--modules MODULESβ the list can include individual module numbers and module number ranges. for example,0,2-5would mean module 0 and modules 2, 3, 4, and 5. use the special keywordallto specify all modules. heads up: unlike core and die numbers, module numbers are absolute π--dies DIESβ the list can include individual die numbers and die number ranges. for example,0-3,5would mean dies 0 to 3, and die 5. use the special keywordallto specify all dies. on some systems, die numbers are globally unique, while on other systems they are relative to the package π€--packages PACKAGESβ the list can include individual package numbers and package number ranges. for example,0,2-4would mean package 0 and packages 2 to 4. use the special keywordallto specify all packages π¦--core-siblings *CORE_SIBLINGS*β core siblings are CPUs sharing the same core. the list can include individual core sibling indices or index ranges. for example, if a core includes CPUs 2 and 3, index 0 would mean CPU 2 and index 1 would mean CPU 3. this option can only be used to reference online CPUs, because Linux does not provide topology information for offline CPUs. in the example with CPUs 2 and 3, if CPU 2 were offline, then index 0 would mean CPU 3. on Intel processors with hyper-threading, this is typically used to offline hyperthreads π§΅--module-siblings *MODULE_SIBLINGS*β module siblings are CPUs sharing the same module. the list can include individual module sibling indices or index ranges. for example, if a module includes CPUs 4, 5, 6, and 7, index 0 would mean CPU 4, index 1 would mean CPU 5, index 2 would mean CPU 6, and index 3 would mean CPU 7. this option can only be used to reference online CPUs, because Linux does not provide topology information for offline CPUs. in the example with CPUs 4, 5, 6, and 7, if CPU 5 were offline, then index 1 would mean CPU 6, index 2 would mean CPU 7, and index 3 would be invalid π«--order ORDERβ by default, the topology table is sorted by CPU number. use this option to sort by core, module, die, node, or package number instead. supported values:cpu,core,module,die,node,packageπ’--online-onlyβ include only online CPUs. by default, both online and offline CPUs are included π--columns COLUMNSβ comma-separated list of topology columns to display. available columns:CPU,core,module,die,node,package,hybrid,dtype. example:--columns Package,Core,CPU. by default, all relevant columns for the platform are shown. the"hybrid"column shows the core type (e.g., E-core or P-core) on hybrid platforms. the"dtype"column shows the die type for non-compute dies (e.g., I/O dies on Granite Rapids Xeon) ποΈ
and that's the whole page, bestie π«Ά no notes, ate and left no crumbs π this was PEPC-TOPOLOGY(1) from the General Commands Manual β go forth and inspect your silicon, you iconic little sysadmin πβ¨
π¦ where this page comes from
- epel 10: python3-pepc 2.0.7-2.el10_3 Β· BSD-3-Clause
- epel 9: python3-pepc 2.0.7-3.el9 Β· BSD-3-Clause
- fedora 44: python3-pepc 2.0.7-2.fc44 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms