Skip to content

drm/asahi: let T8122 thermal control use the full performance table - #317

Draft
DjDeveloperr wants to merge 1 commit into
integration/aurorafrom
fix/t8122-thermal-performance-20261031
Draft

DjDeveloperr wants to merge 1 commit into
integration/aurorafrom
fix/t8122-thermal-performance-20261031

Conversation

@DjDeveloperr

Copy link
Copy Markdown
Collaborator

The J613 boot log reports an eight-state GPU table but clamps both the firmware ceiling and runtime range to state 2 (table label 618 MHz), even while valid SoC die temperatures change. The omitted T8122 experiment cap currently prevents the existing thermal governor from using higher states.

This candidate lets thermal control use the published table when that experiment cap is omitted, retaining state 2 at startup and on critical temperature or sensor failure. Thermal-off boots retain fixed state 2; explicit caps 1–5, hold behavior, global maximum/boot limits and other SoCs retain their policy. Scheduling, batching, Mesa and the firmware ABI are unchanged.

Validation: native ARM64 affected Asahi Rust/C linked object builds; all 27 checked dependency/driver artifacts match buffered/O_DIRECT hashes. The production-policy host suite passes 32 tests, and a temporary restoration of the old ceiling fails the regression test. The Air tool suite passes 86 tests with four skips; checkpatch reports no findings.

Draft pending hardware qualification. State-8 clock/throughput, correctness, sustained thermal response and recovery have not been tested. The full local kernel build did not complete: recurring build-VM cache corruption affected Rust metadata and tools. Evidence was preserved, the idle VM shut down gracefully, and its disk cloned before restart; the affected-driver compile passed afterward. This does not establish a fix for that VM fault. Full CI is requested separately. No candidate is installed on the laptop; auto-unlock and native Limine one-shot recovery must be verified before testing.

The omitted T8122 experiment cap resolves to state 2 and is then applied
as a firmware ceiling, so the thermal governor cannot raise the runtime
cap even with valid SoC temperature readings. On J613 the captured boot
reports eight table states but a firmware/runtime range of 2..2.

Track whether the experiment cap was explicitly supplied. With thermal
control enabled, let omission use the table ceiling while retaining
state 2 for startup and sensor/critical-temperature fallback. Keep the
fixed state-2 policy with thermal control off, and preserve all explicit
caps 1..5 and other SoCs' policy. Hold mode exposes the table but keeps
the runtime cap at state 2 for qualification.

Exercise the production parser and thermal decisions in the existing
host suite, including sensor failures, heat, pacing and cap enforcement.
Correct the experiment help and update its installer checksum together.

Native affected-driver compilation and host tests pass. Higher-state
hardware correctness, thermal behavior and performance remain untested.

Signed-off-by: DjDeveloperr <hey@djdev.me>
@DjDeveloperr DjDeveloperr added the ci:build Build, test and boot the kernel for this PR now label Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:build Build, test and boot the kernel for this PR now

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant