config: arrowlake-h enabling - #121
Conversation
Signed-off-by: Joy Philip Pilli <joyphilip.p2001@gmail.com>
|
Thanks. Will check. |
|
Hi, it looks good generally, I'll just run some phoronix benchmarks to check out alternative settings. |
Sure, additional suggestions & improvements are welcomed |
|
Hi, just commenting to figure out whether this pr is planning to be merged in the next release, or if I'll have to patch it in myself for the forseeable future |
|
Thanks! I submitted new test release. Please use this baseline. |
|
Can you please take over this pull request and finish it? The person who submitted it has had no GitHub activity since this PR was submitted. |
I waited for the team to review the PR for 3 months, I'll take care of the merge conflicts and make appropriate changes again, As for my activity, it goes towards my work and my personal projects, Thanks. |
Summary
Add Arrow Lake-H (family 6, model 0xC5/197) platform support:
lpmd_cpu.cintel_lpmd_config_F6_M197.xmlwith WLT-driven power management tuned for H-series hybrid topologydata/Makefile.amDesign
Arrow Lake-H uses a P+E+L hybrid topology. The config keeps P-cores permanently parked in Balanced/AUTO mode — all differentiation is done via per-state EPP/EPB within the E+L core set. Users who need P-cores select Performance mode or disable LPMD.
Power profile mapping:
Unlike upstream templates (all Defs=-1 / idle by default), this config is active out-of-the-box with BalancedDef=0 and PowersaverDef=1.
WLT states (Balanced/AUTO mode):
All states use
ActiveLcores=ALL+ActiveEcores=ALL(topology-portable, resolved at runtime via CPUID) withIRQMigrate=1andMode=1(cgroup v2 isolate).Key decisions
WLT 0/1 merge (
WLTTypeMask=3): Hardware oscillates between WLT_IDLE and WLT_BATTERY_LIFE ~2x/sec. Separate states with different EPP/EPB values would cause ~64 sysfs writes/sec of I/O churn. Merging them into one state eliminates this entirely. Pattern adopted from F6_M181 (Arrow Lake-U).No wildcard WLT state: Some configs (e.g. F6_M189) use a wildcard state with no WLTType to catch invalid values. Here, invalid/out-of-range WLT values (e.g. WLT_INVALID=4) match no state — the daemon holds its current state unchanged (STATE_NONE), producing zero writes on garbage data.
Util thresholds disabled: All AUTO states share the same CPU mask (E+L), so load-based exit adds no value. The power-performance spectrum is handled entirely by EPP/EPB per WLT state.
ITMT:
IgnoreITMT=0for upstream consistency. Effectively a no-op — the kernel 6.14+ debugfs toggle is not created on Arrow Lake-H, and ITMT (prefer P-cores) conflicts with LPM (park P-cores).SoC Power Slider: Omitted. Panther Lake hardware debut; Arrow Lake loads the module but does not expose the slider mailbox.
Files changed
src/lpmd_cpu.c— Add model 0xC5 toid_table[], fix 0xB5 comment ("ArrowLake" → "Arrowlake U")data/intel_lpmd_config_F6_M197.xml— New platform config (documented inline)data/Makefile.am— Register config for installationTest plan