intel_lpmd_config.xml(5)
π¦ intel_lpmd_config.xml β section 5 of the File Formats Manual π¦
okay bestie, listen up π this is the page about intel_lpmd_config.xml, and it's genuinely iconic. it's part of the File Formats Manual, it lives in section 5, and it's the whole vibe guide for the Intel Low Power Mode Daemon. no cap. let's go β¨
πΈ NAME πΈ
intel_lpmd_config.xml β the configuration file for intel_lpmd π
β¨ SYNOPSIS β¨
$(TDCONFDIR)/etc/intel_lpmd/intel_lpmd_config.xml
that's literally where it lives, bestie. that's the path. π«Ά
π DESCRIPTION π
intel_lpmd_config.xml is the config file for the Intel Low Power Mode Daemon. it's the place where you describe states and the rules for switching between those states. and what even is a state? it's a custom, user-defined set of parameters that the platform should use to hit that sweet spot between optimal performance and energy saving π. the switching rules are basically "what system info decides whether we need to change state or not" β and that info can come from a hardware source, OR it can be calculated in software if the hardware features just aren't there. either way, we ball π
lp_mode_cpus is the set of active CPUs when the system is in Low Power Mode. usually this is the group of the most power-efficient CPUs on a platform, because that's how you get the best power saving. if you don't specify it, the intel_lpmd tool can detect it automatically for you β no stress π. for example: it uses L-cores on the Intel PantherLake platform, the E-core Module on the Intel Alderlake platform, and the Low Power E-cores on SoC Die on the Intel Meteorlake platform. she knows what she's doing, fr fr.
Mode specifies the way to migrate the tasks to the lp_mode_cpus. three flavors, pick your fighter:
- Mode 0: set cpuset to the
lp_mode_cpusfor systemd. all tasks created by systemd will run on these CPUs only. this is supported for cgroup v2 based systemd only β οΈ. - Mode 1: isolate the non-
lp_mode_cpusso that tasks are scheduled to thelp_mode_cpusonly. - Mode 2: force idle injection to the non-
lp_mode_cpusand leverage the scheduler to schedule the other tasks to thelp_mode_cpus.
PerformanceDef / BalancedDef / PowersaverDef specifies the default behavior for a given power profile. the values:
-1: Never enter Low Power Mode. she stays awake, always π0: opportunistic Low Power Mode enter/exit based on HFI/Utilization request. main character energy β she comes and goes as she pleases β¨1: Always stay in Low Power Mode. committed. loyal. periodt π
HfiLpmEnable specifies if the HFI monitor can capture the HFI hints for Low Power Mode.
HfiSuvEnable specifies if the HFI monitor can capture the HFI hints for survivability mode.
WLTHintEnable β Enable use of hardware Workload type hints.
WLTHintNotificationDelay β Set hardware workload notification delay in milliseconds.
WLTProxyEnable β Enable use of Proxy Workload type hints.
util_entry_threshold specifies the system utilization threshold for entering Low Power Mode. the system workload is considered to fit the lp_mode_cpus capacity when system utilization is under this threshold. setting it to 0 or leaving it empty disables the utilization monitor β οΈ.
util_exit_threshold specifies the CPU utilization threshold for exiting Low Power Mode. the system workload is considered to not fit the lp_mode_cpus capacity when the utilization of the busiest lp_mode_cpus is above this threshold. setting it to 0 or leaving it empty disables the utilization monitor β οΈ.
IgnoreITMT β Avoid changing scheduler ITMT flag. this means that during transition to low power mode, the ITMT flag is not changed, which reduces latency during switching ποΈπ¨. this flag is not used when the configuration uses "State" based configuration, where this flag can be defined per state. also, ITMT is only relevant for platforms before Lunar Lake and the debugfs file is not present on later platforms. iykyk.
States β Allows one to define per-platform low power states. each state definition has an entry condition and a set of parameters to use.
π State Definition π
there can be multiple state configurations present, bestie. each configuration is valid for a platform. a state header defines parameters, which are used to match a platform. the matchers:
CPUFamilyβ CPU generation to match.CPUModelβ CPU model to match.CPUConfigβ Define a configuration of CPUs and TDP to match different skews for the same CPU model and family. the CPU configuration string format is:xPyEzL-tdpW. for example:12P8E2L-28W, defines a platform with 6 P-cores with hyper threading enabled, 8 E cores, 2 LPE cores and the TDP is 28W. this configuration allows the wildcard"*"to match any combination π¦.
π Per State Definition π
each "State" defines entry criteria and parameters to use. here's the whole cast:
IDβ A unique ID for the state.Nameβ A name for the state.EntrySystemLoadThresβ System Entry load threshold in percent. system utilization is different based on the number of active CPUs in a configuration. this value is calculated from/proc/statsysfs. to enter into this state, the system utilization must be less or equal to this value.EnterCPULoadThresβ CPU Entry load threshold in percent. per-CPU utilization is also obtained from/proc/stat. to enter into this state, any active CPU utilization must be less or equal to this value.EnterCPULoadThresis checked beforeEntrySystemLoadThresto match a state π.WLTTypeβ Workload type value to enter into this state. if this value is defined then utilization based entry triggers are not used. to use this,WLTHintEnablemust be enabled, so that hardware notifications are enabled.WLTTypeMaskβ Mask of workload type values to enter into this state. this has higher priority thanWLTType. if this value is defined then utilization based entry triggers are not used.ActiveCPUsβ Active CPUs in this state. the list can be comma separated or use"-"for a range. this is optional to have active CPUs in a state.EPPβ EPP to apply for this state.-1to ignore.EPBβ EPB to apply for this state.-1to ignore.ITMTStateβ Set the state of ITMT flag.-1to ignore. ITMT is only relevant for platforms before MTL and thedebugfsfile is not present on later platforms.IRQMigrateβ Migrate IRQs to the active CPUs in this state.-1to ignore.MinPollIntervalβ Minimum polling interval in milliseconds.MaxPollIntervalβ Maximum polling interval in milli seconds. this is optional, if there is no maximum is desired.PollIntervalIncrementβ Polling interval increment in milli seconds. if this value is-1, then polling increment is adaptive based on the utilization π§.
π FILE FORMAT π
the configuration file format conforms to XML specifications. yes bestie, XML. she's retro, she's classic, she ate π
<Configuration>
<!--
CPU format example: 1,2,4..6,8-10
-->
<lp_mode_cpus>Example CPUs</lp_mode_cpus>
<!--
Mode values
0: Cgroup v2
1: Cgroup v2 isolate
2: CPU idle injection
-->
<Mode>0|1|2</Mode>
<!--
Default behavior when Performance power setting is used
-1: force off. (Never enter Low Power Mode)
1: force on. (Always stay in Low Power Mode)
0: auto. (opportunistic Low Power Mode enter/exit)
-->
<PerformanceDef>-1|0|1</PerformanceDef>
<!--
Default behavior when Balanced power setting is used
-1: force off. (Never enter Low Power Mode)
1: force on. (Always stay in Low Power Mode)
0: auto. (opportunistic Low Power Mode enter/exit)
-->
<BalancedDef>-1|0|1</BalancedDef>
<!--
Default behavior when Power saver setting is used
-1: force off. (Never enter Low Power Mode)
1: force on. (Always stay in Low Power Mode)
0: auto. (opportunistic Low Power Mode enter/exit)
-->
<PowersaverDef>-1|0|1</PowersaverDef>
<!--
Use HFI LPM hints
0 : No
1 : Yes
-->
<HfiLpmEnable>0|1</HfiLpmEnable>
<!--
Use HFI SUV hints
0 : No
1 : Yes
-->
<HfiSuvEnable>0|1</HfiSuvEnable>
<!--
System utilization threshold to enter LP mode
from 0 - 100
-->
<util_entry_threshold>Example threshold</util_entry_threshold>
<!--
System utilization threshold to exit LP mode
from 0 - 100
-->
<util_exit_threshold>Example threshold</util_exit_threshold>
<!--
EPP to use in Low Power Mode
0-255: Valid EPP value to use in Low Power Mode
-1: Don't change EPP in Low Power Mode
-->
<lp_mode_epp>-1 | EPP value</lp_mode_epp>
</Configuration>
β EXAMPLE CONFIGURATIONS β
π Example 1: This is the minimum configuration. π
lp_mode_cpus: not set. Detects thelp_mode_cpusautomatically.Mode:0. Use cgroup-v2 systemd for task migration.HfiLpmEnable:0. Ignore HFI Low Power mode hints.HfiSuvEnable:0. Ignore HFI Survivability mode hints. with bothHfiLpmEnableandHfiSuvEnablecleared, the HFI monitor will be disabled β οΈ.util_entry_threshold:0. Disable utilization monitor.util_exit_threshold:0. Disable utilization monitor.lp_mode_epp:-1. Do not change EPP when entering Low Power Mode.
<?xml version="1.0"?>
<Configuration>
<lp_mode_cpus></lp_mode_cpus>
<Mode>0</Mode>
<HfiLpmEnable>0</HfiLpmEnable>
<HfiSuvEnable>0</HfiSuvEnable>
<util_entry_threshold>0</util_entry_threshold>
<util_exit_threshold>0</util_exit_threshold>
<lp_mode_epp>-1</lp_mode_epp>
</Configuration>
πΈ Example 2: πΈ
This is the typical configuration. The utilization thresholds and delays may be different based on requirement.
lp_mode_cpus: not set. Detects thelp_mode_cpusautomatically.Mode:0. Use cgroup-v2 systemd for task migration.HfiLpmEnable:1. Enter/Exit Low Power Mode based on HFI hints.HfiSuvEnable:1. Enter/Exit Survivability mode based on HFI hints.util_entry_threshold:5. Enter Low Power Mode when system utilization is lower than 5%.util_exit_threshold:95. Exit Low Power Mode when the utilization of any of thelp_mode_cpusis higher than 95%.lp_mode_epp:-1. Do not change EPP when entering Low Power Mode.
<?xml version="1.0"?>
<Configuration>
<lp_mode_cpus></lp_mode_cpus>
<Mode>0</Mode>
<HfiLpmEnable>1</HfiLpmEnable>
<HfiSuvEnable>1</HfiSuvEnable>
<util_entry_threshold>5</util_entry_threshold>
<util_exit_threshold>95</util_exit_threshold>
<lp_mode_epp>-1</lp_mode_epp>
</Configuration>
π§ Currently unimplemented options π§
Bestie, listen. These four knobs are in the config file, they parse, they look real β but they do not do anything yet. They're the group-chat member who's in the server but never types. Set them if you want, the daemon will just vibe past them. No cap.
EntryDelayMSβ this one's supposed to be the sample interval the utilization Monitor uses when the system wants to enter Low Power Mode based on system utilization. Setting it to0, or just leaving it empty, would make the utilization Monitor fall back to its default interval of1000milli seconds. π€ExitDelayMSβ this one's supposed to be the sample interval the utilization Monitor uses when the system wants to exit Low Power Mode based on CPU utilization. Setting it to0or leaving it empty would make the Monitor go adaptive instead β and the adaptive interval is based on CPU utilization, so the busier the CPU is, the shorter the interval the utilization monitor uses. Busy CPU = short attention span, honestly relatable. πEntryHystMSβ this one's supposed to be a hysteresis threshold for when the system is in Low Power Mode. If it were set, then whenever the previous average time stayed in Low Power Mode was lower than this value, the current enter-Low-Power-Mode request would get ignored β because the system is expected to exit Low Power Mode soon anyway, so like, why bother. π«Ά Setting it to0or leaving it empty would disable this hysteresis algorithm entirely.ExitHystMSβ the mirror twin. Supposed to be a hysteresis threshold for when the system is not in Low Power Mode. If it were set, then whenever the previous average time stayed out of Low-Power-Mode was lower than this value, the current exit-Low-Power-Mode request would get ignored β because the system is expected to enter Low Power Mode soon, so exiting is giving pointless. π Setting it to0or leaving it empty would disable this hysteresis algorithm.
β οΈ Vibe check: all four of these are currently unimplemented. So don't come for the daemon when your carefully tuned EntryHystMS does literally nothing. It's not you, it's the code. π
π SEE ALSO π
The whole squad, go read them:
And that's the whole page, bestie!! π¦ This little masterpiece is from the intel_lpmd_config.xml(5) manual, dated 8 Apr 2026 β yes, the source/version and date footer, we clocked it, we honoured it, we're mentioning it in a sign-off like the icons we are. Go forth and configure responsibly. β¨π
π¦ where this page comes from
- centos-stream 10: intel-lpmd 0.1.0-1.el10 Β· GPL-2.0-or-later
- centos-stream 9: intel-lpmd 0.1.0-1.el9 Β· GPL-2.0-or-later
- fedora 43: intel-lpmd 0.1.0^git20260608.40d18a6-1.fc43 Β· GPL-2.0-or-later
- fedora 44: intel-lpmd 0.1.0^git20260608.40d18a6-1.fc44 Β· GPL-2.0-or-later
- π the page's license: GPL-2.0-or-later
- Copyright (C) 2026 Intel Corporation
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms