Hi,
On 10/13/26 2:39 PM, Constantinos Chalkias wrote:
For some context, I started investigating this because my Maxsun Arc Pro
B70 would latch the blower at very high speed after a long inference
workload and leave it there even when the node was otherwise idle.
Yes, that is because the loop polling the pkg sensor for some reason
stops while no client is connected, but it can be triggered once by some
other events, such as changing forcewake state, or monitor hotplug.
So I have a background task running that just does
while true
do
sleep 5 >forcewake_all
sleep 5
done
and I get working fan control, regardless of whether I'm also polling
the sensors.
With a 500-1000 us settling interval, the package-only workaround was
not reliable. The physical blower could remain latched at high speed for
several minutes after the workload ended.
It works if the pulse is long enough to be noticed. If you send multiple
pulses (because you are reading multiple sensors in turn) with only
brief pauses in between, you're generating a longer pulse that has a
higher chance of being noticed.
I'd bet it would also work to just assert forcewake for 10 ms instead of
ten shorter intervals, so we can use a timer here to asynchronously
reset instead of synchronously waiting in the hwmon readout -- we're not
getting fresh values here anyway, because the loop has not woken up yet.
The real solution, of course, would be a firmware fix.
Simon