PEPC-UNCORE(1)
okay bestie, welcome to the PEPC-UNCORE(1) manual page โ that's the uncore command, from the General Commands Manual section. ๐ no cap, we're gonna keep every single detail, just with extra sparkle. โจ
Command 'uncore' ๐
General options โจ
-hโ bestie, this just shows a short help message and exits. ๐-qโ quiet mode: only the important messages like warnings get printed. ๐คซ-dโ prints debugging information. ๐--debug-modulesMODNAME[,MODNAME1,...] โ so-dturns on all debug messages, but this one limits them to the modules you list. for example,-d --debug-modules MSRwill only show debug messages from theMSRmodule. ๐ฏ--versionโ prints the version number and exits. ๐-HHOSTNAME,--hostHOSTNAME โ host name or IP address of the target system. thepepccommand will be executed on this system using SSH, instead of running it locally. if you don't specify it, the command runs locally. ๐ฅ๏ธ-UUSERNAME,--usernameUSERNAME โ name of the user to use for logging into the remote host over SSH. by default, look up the user name in SSH configuration files. if it's not found, use the current user name. ๐งโ๐ป-KPRIVKEY,--priv-keyPRIVKEY โ path to the private SSH key for logging into the remote host. if not specified, 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. ๐-DDATASET,--datasetDATASET โ this option is for debugging and testing. it specifies the dataset to use for emulating the host for running the command on. the datasets are available in thepepcsource code repository. ๐
the argument can be a dataset path or name. if specified by name, these locations are searched for the dataset:
./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). ๐--print-man-pathโ print thepepcmanual pages directory path and exit. add this path to theMANPATHenvironment variable to make the manual pages available to themantool. ๐--override-cpu-modelVFM โ for debugging and testing only. override the target host CPU model and forcepepcto treat the host as a specific CPU model. the format is[<Vendor>:][<Family>:]<Model>, where<Vendor>is the CPU vendor (e.g.,GenuineIntelorAuthenticAMD),<Family>is the CPU family (e.g.,6), and<Model>is the CPU model (e.g.,0x8F). example:GenuineIntel:6:0x8Ftreats the target as a Sapphire Rapids Xeon. vendor and family are optional. if omitted, the target host values are used. family and model can be specified in decimal or hexadecimal format. ๐ง
heads up bestie: --override-cpu-model is for debugging and testing only. no cap. ๐ซถ
Target domain specification options ๐ฏ
all subcommands (info, config) support these target domain specification options. periodt. ๐
--cpusCPUS โ 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. ๐งฎ--coresCORES โ 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. ๐ฉ--modulesMODULES โ 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. note that unlike core and die numbers, module numbers are absolute. ๐ฆ--diesDIES โ 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. ๐ฒ--packagesPACKAGES โ 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-siblingsCORE_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 3 and 4, index 0 would mean CPU 3 and index 1 would mean CPU 4. 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 3 and 4, if CPU 3 was offline, then index 0 would mean CPU 4 and index 1 would be invalid. ๐ฏ--module-siblingsMODULE_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 3, 4, 5, and 6, index 0 would mean CPU 3, index 1 would mean CPU 4, index 2 would mean CPU 5, and index 3 would mean CPU 6. 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 3, 4, 5, and 6, if CPU 4 was offline, then index 1 would mean CPU 5, index 2 would mean CPU 6, and index 3 would be invalid. ๐ฏโโ๏ธ
Subcommand 'info' ๐
retrieve uncore information for specified dies. by default, display all details for all dies. use target domain specification options to define a subset of CPUs, cores, dies, or packages. ๐
-mMECHANISMS,--mechanismsMECHANISMS โ a comma-separated list of mechanisms for retrieving information. use--list-mechanismsto view available mechanisms. many options support only one mechanism (e.g.,sysfs), while others may support multiple (e.g.,sysfsandtpmi). mechanisms are tried in the specified order. by default, all mechanisms are allowed, and the most preferred ones are tried first. ๐งฐ--list-mechanismsโ display available mechanisms for retrieving uncore information. ๐--min-freqโ retrieve the minimum uncore frequency. the supported mechanisms are:sysfs,tpmi. in case of thesysfsmechanism, the sysfs path depends on what uncore driver is used. in case of theinteluncorefrequencytpmidriver, use/sys/devices/system/cpu/intel_uncore_frequency/uncore<NUMBER>/min_freq_khz. in case of theinteluncore_frequencydriver, use/sys/devices/system/cpu/intel_uncore_frequency/package_<NUMBER>_die_<NUMBER>/min_freq_khz. ๐
the tpmi mechanism uses the tpmi driver debugfs interface to access TPMI registers. the exact path depends on the target die number. example of the debugfs file path is /sys/kernel/debug/tpmi-0000:00:03.1/tpmi-id-02/mem_dump. ๐งฌ
--max-freqโ retrieve the maximum uncore frequency. similar to--min-freq, but for the maximum uncore frequency. uses the same mechanisms as--min-freq, but the sysfs mechanism uses themaxfreqkhzfile instead ofminfreqkhz. ๐--min-freq-limitโ retrieve the minimum uncore frequency limit supported by the kernel. the supported mechanism issysfs. in case of theinteluncorefrequencytpmidriver, read/sys/devices/system/cpu/intel_uncore_frequency/uncore<NUMBER>/initial_min_freq_khz. in case of theinteluncore_frequencydriver, read/sys/devices/system/cpu/intel_uncore_frequency/package_<NUMBER>_die_<NUMBER>/initial_min_freq_khz. ๐ง
the tpmi mechanism does not provide minimum or maximum uncore frequency limits (the allowed range). the Linux uncore frequency driver determines these limits by reading and storing the default minimum and maximum frequencies from TPMI during initialization, assuming they were correctly configured by the BIOS during platform boot. ๐ง
--max-freq-limitโ retrieve the maximum uncore frequency limit. similar to--min-freq-limit, but for the maximum uncore frequency limit. uses the same mechanisms as--min-freq-limit, but the sysfs mechanism uses theinitialmaxfreqkhzfile instead ofinitialminfreqkhz. ๐ง--elc-low-zone-min-freqโ retrieve the ELC low zone minimum uncore frequency. the supported mechanisms are:sysfs,tpmi. in case of thesysfsmechanism, read/sys/devices/system/cpu/intel_uncore_frequency/uncore<NUMBER>/elc_floor_freq_khz. ๐
the tpmi mechanism uses the tpmi driver debugfs interface to access TPMI registers. the exact path depends on the target die number. example of the debugfs file path is /sys/kernel/debug/tpmi-0000:00:03.1/tpmi-id-02/mem_dump. ๐งฌ
when the aggregate die utilization falls below or equals the ELC low threshold value (--elc-low-threshold), the die enters the ELC low zone. its uncore frequency floor is set to the ELC low zone minimum frequency (--elc-low-zone-min-freq), unless the global minimum uncore frequency (--min-freq) is higher, in which case the global minimum uncore frequency is used as the floor. ๐
--elc-mid-zone-min-freqโ retrieve the ELC middle zone minimum uncore frequency. only thetpmimechanism is supported. reads the same TPMI debugfs files as--elc-low-zone-min-freq. ๐
when the aggregate die utilization is above the ELC low threshold value (--elc-low-threshold), but below the ELC high threshold value (--elc-high-threshold), the die enters the ELC middle zone. its uncore frequency floor is set to the ELC middle zone minimum frequency (--elc-mid-zone-min-freq), unless the global minimum uncore frequency (--min-freq) is higher, in which case the global minimum uncore frequency is used as the floor. ๐
--elc-low-thresholdโ bestie, this one gets the uncore ELC low threshold ๐. The threshold is literally the aggregate die utilization percentage. When utilization falls below this threshold, the platform sets the uncore frequency floor to the low ELC frequency (but it's subject to the--min-freq-limitโ if the limit is higher than the low ELC frequency, the limit is used as the floor instead, no cap). Supported mechanisms are:sysfs,tpmi. Thesysfsmechanism reads the/sys/devices/system/cpu/intel_uncore_frequency/uncore<NUMBER>/elc_low_threshold_percent. Thetpmireads the same debugfs files as--min-freq.--elc-high-thresholdโ get the uncore ELC high threshold โจ. The threshold defines the aggregate die utilization percentage. When die utilization exceeds this threshold, the platform rapidly raises the uncore frequency until die utilization drops below the threshold or the frequency reaches the--max-freqlimit. In addition, uncore frequency increases may be prevented by other constraints, such as thermal or power limits. So it's giving "go fast but also chill" energy ๐ฅ. Supported mechanisms are:sysfs,tpmi. Thesysfsmechanism reads the/sys/devices/system/cpu/intel_uncore_frequency/uncore<NUMBER>/elc_high_threshold_percent. Thetpmireads the same debugfs files as--max-freq.--elc-high-threshold-statusโ get the uncore ELC high threshold enabled/disabled status ๐ . If disabled, the high threshold is ignored and the platform manages uncore frequency using the default algorithm. So it's like, "do you even want the high threshold, bestie?" ๐. Supported mechanisms are:sysfs,tpmi. Thesysfsmechanism reads the/sys/devices/system/cpu/intel_uncore_frequency/uncore<NUMBER>/elc_high_threshold_enable. Thetpmireads the same debugfs files as--max-freq.--yamlโ Display output in YAML format. So aesthetic โจ.--dies-infoโ Display detailed information about dies and how they map to uncore frequency driver sysfs paths and TPMI UFS feature addresses. Like a whole map of the squad ๐.
โจ Subcommand config โจ
Configure uncore properties for specified dies. If no parameter is provided, the current value(s) will be displayed. Use target domain specification options to define the subset of CPUs, cores, dies, or packages. You can pick your faves, no cap ๐.
-m,--mechanismsMECHANISMS โ A comma-separated list of mechanisms allowed for configuring uncore properties. Use--list-mechanismsto view available mechanisms. Many options support only one mechanism (e.g.,sysfs), while some support multiple (e.g.,sysfsandtpmi). Mechanisms are tried in the specified order. By default, all mechanisms are allowed, and the most preferred ones are tried first. So it's a priority list, periodt ๐ .--list-mechanismsโ Display available mechanisms for configuring uncore properties. Basically the menu of options ๐.--min-freq[MIN_FREQ] โ Set the minimum uncore frequency. The default unit isHz, butkHz,MHz, andGHzcan also be used (for example900MHz). Uses the same mechanisms as described in theinfosub-command. The following special values can also be used:minโ Minimum uncore frequency supported (see--min-freq-limit). Regardless of the--mechanismsoption, thesysfsmechanism is always used to resolveminto the actual minimum frequency.maxโ Maximum uncore frequency supported (see--max-freq-limit). Regardless of the--mechanismsoption, thesysfsmechanism is always used to resolvemaxto the actual maximum frequency.mdlโ The middle uncore frequency value between minimum and maximum rounded to nearest 100MHz. Regardless of the--mechanismsoption, thesysfsmechanism is always used to resolvemdlto the actual middle frequency. Note, thetpmimechanism does not provide minimum or maximum uncore frequency limits (the allowed range). As a result, it is possible to set uncore frequency values outside the supported limits, such as setting the minimum frequency below the actual minimum limit. Use caution when configuring uncore frequencies with thetpmimechanism. โ ๏ธ
--max-freq[MAX_FREQ] โ Set the maximum uncore frequency. Uses the same mechanisms as described in theinfosub-command. Similar to--min-freq, but applies to the maximum frequency. So the max version, periodt ๐ .--elc-low-zone-min-freq[ELCLOWZONEMINFREQ] โ Set the ELC low zone minimum uncore frequency. Uses the same mechanisms as described in theinfosub-command. Supports special valuesmin,max, andmdl, similar to--min-freq. Low zone, but make it minimum ๐.--elc-mid-zone-min-freq[ELCMIDZONEMINFREQ] โ Set the ELC middle zone minimum uncore frequency. Uses the same mechanisms as described in theinfosub-command. Supports special valuesmin,max, andmdl, similar to--min-freq. Middle child energy, but for uncore โจ.--elc-low-threshold[ELCLOWTHRESHOLD] โ Set the uncore ELC low threshold. Same as in theinfosub-command, but sets the ELC low threshold. So like, you're setting it now, not getting it ๐ .--elc-high-threshold[ELCHIGHTHRESHOLD] โ Set the uncore ELC high threshold. Same as in theinfosub-command, but sets the ELC high threshold. High threshold, but set it, bestie ๐ฅ.--elc-high-threshold-status[on/off] โ Set the uncore ELC high threshold enabled/disabled status. Same as in theinfosub-command, but sets the ELC high threshold status. On or off, like your notifications ๐ฑ.
And that's a wrap on PEPC-UNCORE(1) ๐ โ go forth and configure, bestie. No cap. ๐ซถ
๐ฆ 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