Repository navigation
arm64: dts: apple: t6040-j616s: Run the fans on the CPU die like macOS - #579
jgoyvaerts wants to merge 3 commits into
Conversation
The CPU die zone runs both fans at full speed (5777 rpm) from a 95 C TCMz. Any all-core load gets there within seconds, so a kernel build or a game puts the fans at maximum, louder than this machine ever runs under macOS. macOS 26.6.2 on this machine (Mac16,7), 300 s of all-core load at full clocks (P 3852 MHz, E 2592 MHz, thermal pressure Nominal throughout, SMC fan targets F0Tg/F1Tg sampled every 2 s): TCMz fans F0/F1 (rpm) < 100 C off (95 C after 11 s, still off) ~100 C start at their minimum, 1350/1458 ~104.5 C targets leave the minimum 110.9 C (42 s) ~2200/2400, the peak 106.5 C steady 3450/3730 (60-65% of maximum), never higher Give the CPU die zone its own ladder on those numbers: fans at their minimum from 100 C (state 1), 104 C state 2, 106 C state 4 (~3250 rpm, where macOS settles), 108 C state 5, and full speed only at 111 C, just under the 113 C passive trip. Below 100 C the fans stay with the SMC, as under macOS. The GPU zones keep their ladder: there is no macOS measurement under GPU load yet. Signed-off-by: Jonathan Goyvaerts <jonathan.goyvaerts@gmail.com> Assisted-by: LLM
…CMz noise Under all-core load on a J616s with the macOS ladder, TCMz (the hottest of the die sensors) swings by up to 8 C between 2 s samples (99.5 -> 107.8 C), so with 2-5 C of hysteresis the fans hunted between 1350, 1980 and 3250 rpm 17 times in 110 s: audible pumping. macOS's SMC ramps its targets slowly instead. Widen the hysteresis to 10/8/7/5/3 C. Replaying the same 150 s trace through the trips gives no state change once the die first reaches 106 C: the fans hold ~3250 rpm, near macOS's steady 3450 rpm, and stay on until the die is clearly cooler, as under macOS. Signed-off-by: Jonathan Goyvaerts <jonathan.goyvaerts@gmail.com> Assisted-by: LLM
|
Tested on a J616s (7.3.0 with this ladder, booted via aura): 150 s all-core load at full clocks (P 4512 / E 2592 MHz max), TCMz and both fan speeds sampled every 2 s.
Pushed a second commit that widens the hysteresis to 10/8/7/5/3 C. Replaying the same trace through the trips gives no state change once the die first reaches 106 C (fans hold ~3250 rpm, close to macOS's steady 3450). I'll confirm it with the same load on hardware and report back here. 🤖 Generated with Claude Code |
Under all-core load at full clocks (a Mesa build, P 4512 MHz), TCMz touches 111 C every half minute or so. The last step of the CPU die ladder then sends both fans from 3880 rpm straight to their 5777 rpm maximum, and back once the die is under 108 C: a loud surge that macOS never makes. macOS held this die at 106.5 C with at most 3730 rpm, even at its 110.9 C peak. Ask for state 6 (4510 rpm) at 111 C instead, and bind full speed to the 113 C passive trip, where the CPU clusters also start shedding clocks. The GPU zones keep their ladder. Signed-off-by: Jonathan Goyvaerts <jonathan.goyvaerts@gmail.com> Assisted-by: LLM
|
Third commit, 5c271f4 ("Keep full fan speed for the passive trip"). Sustained all-core load on the J616s with the first two commits (a Mesa build, P cores at 4512 MHz): the fans held state 5 (~3880 rpm) with TCMz at 104-108 C. But each time TCMz touched 111 C, both fans jumped to state 8 (5777 rpm) for a few seconds, then dropped back once the die was under 108 C. That happened about every 30 s. Under the same kind of load, macOS never went above 3730 rpm, even at its 110.9 C peak. So the 111 C trip now asks for state 6 (~4510 rpm). Full speed is bound to the 113 C passive trip, where the CPU clusters also start shedding clocks. The GPU zones are unchanged. The only difference in the compiled DTB is those two cooling maps. A hardware report on this commit under sustained load follows. |
|
Superseded by #670, which leaves the fan policy to the SMC firmware. |
The J616s CPU die zone (from #560) runs both fans at full speed (5777 rpm) from a 95 C TCMz. Any all-core load gets there within seconds, so a kernel build or a game puts the fans at maximum, louder than this machine ever runs under macOS.
This gives the CPU die zone its own ladder, measured on macOS 26.6.2 on this machine (Mac16,7): 300 s of all-core load at full clocks (P 3852 MHz, E 2592 MHz,
thermal_pressureNominal throughout), SMC fan targetsF0Tg/F1Tgsampled every 2 s:New CPU die ladder:
The passive (113 C) and critical (118 C) trips are unchanged, and the fans still reach full speed before either.
The GPU zones keep their 75-95 C ladder: there is no macOS measurement under GPU load yet. Under CPU load they don't interfere: in the same macOS run the hottest GPU sensor (of Tg05/Tg0S/Tg0Y/Tg0k/Tg0z/Tg1V/Tg1l) peaked at 71.2 C, below their first step.
Testing: DT builds without warnings; the compiled cpu-die-thermal has the trips and fan states above, gpu0-6 unchanged. The J616s boot with this ladder and a sustained all-core load will be reported here before merge.
🤖 Generated with Claude Code