Skip to content

adjustor: add Intel RAPL TDP support for ONEXPLAYER 3 - #338

Open
Domessy wants to merge 1 commit into
hhd-dev:masterfrom
Domessy:onexplayer3-intel-rapl
Open

adjustor: add Intel RAPL TDP support for ONEXPLAYER 3#338
Domessy wants to merge 1 commit into
hhd-dev:masterfrom
Domessy:onexplayer3-intel-rapl

Conversation

@Domessy

@Domessy Domessy commented Aug 23, 2026

Copy link
Copy Markdown

Background

I am an ONEXPLAYER 3 user and hardware enthusiast, rather than a software
developer.

While testing this device, I noticed that TDP control was not
behaving as expected under Linux.

The device was limited to a 25 W sustained PL1 power limit. This resulted in lower
performance compared with other devices using the same CPU platform.

Hardware investigation

The ONEXPLAYER 3 is equipped with an Intel Panther Lake processor and Intel
Arc B390 graphics.

After investigating the power management interfaces exposed by the platform,
Intel RAPL controls were found to be available and capable of adjusting the
package power limit.

With this adjustment:

  • HHD exposes an adjustable 8-35 W TDP range through the existing interface
  • 25 W remains the default value
  • The device can now operate at higher power limits when required
  • Black Myth: Wukong benchmark results match MSI Claw 8 AI+ EX results when
    running at equivalent power levels

Implementation details

The device exposes a 25 W MSR PL1 limit under Linux while supporting an
OEM 8-35 W TDP range.

The implementation only modifies the PL1 power field in
MSR_PKG_POWER_LIMIT while preserving PL2 and all unrelated fields.

The RAPL power unit is detected dynamically from MSR_RAPL_POWER_UNIT.
The implementation checks the package limit lock state, verifies writes,
and reapplies the selected limit after power-state changes.

The TDP range exposed through HHD is an adjustable 8-35 W slider.

Validation

Validated on:

  • ONEXPLAYER 3 with Intel Panther Lake and Intel Arc B390

Note

AI tools were used as a coding assistant during development. All hardware
investigation, testing, and validation were performed on real hardware.

Feedback on the approach is welcome.

Add a DMI-gated Intel RAPL backend for the Intel ONEXPLAYER 3.

The device exposes a 25 W MSR PL1 under Linux while supporting an OEM
8-35 W TDP range. Change only the PL1 power field in
MSR_PKG_POWER_LIMIT while preserving PL2 and all other fields.

Derive the RAPL unit from MSR_RAPL_POWER_UNIT, check the package-limit
lock, verify writes, reapply the selected limit after power-state
changes, and expose an 8-35 W TDP range.

Validated on Intel Panther Lake / Arc B390 at 30 W and 35 W.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant