Hi,
On 10/15/26 5:12 AM, Rodrigo Vivi wrote:
If the consensus is that we need this forcewake, let's do it.
It feels like we haven't really understood the problem yet, we just know
something that appears to work.
If I run
while true; do sleep 5 >forcewake_all; sleep 5; done & watch sensors
then the temperature sensors *do* update, but several of the VRAM
channels take over a minute, so the long forcewake does not solve the
problem. If shorter ones do, then I'd really like to understand why; my
theory is that it's not the forcewake itself that does the job, but the
fact that it's toggling, and possibly generating some events in some
microcontroller. It may be sufficient to send some no-op commands
instead of playing with the power rails.
Starting the loop above with pretty much everything at a nice toasty
equilibrium temperature of 82 degrees (which is way too much IMO for a
card that has no client connected and is just displaying a console
login), the fans immediately come on, and apparently every ten seconds
one of the VRAM channels updates to a lower temperature, so one
forcewake event pretty much exactly corresponds to one sensor update.
That would explain why the patch works -- it generates the same number
of forcewake events as sensor reads, and the delay makes sure they are
registered as separate events. However, there is no correspondence
between the event and the sensor, so if I do my normal telemetry
recording (every sensor once every ten seconds) I can still get data
that is ten seconds old, and I also wake up the GPU once every ten
seconds even if there is nothing to do.
That is an improvement over the status quo, but my concern is that it
will push us over into "good enough" territory where the actual problem
is never addressed.
Simon