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

Reply via email to