Two commits that peg my IceLake GPU @1100Mhz
Using "turbostat", I'd discovered that my laptop's GPU (IceLake, i7-1065G7) was pretty much always pegged @1100Mhz. I figured this was anomalous behavior, so I spent (quite) a few hours bisecting (I'm currently running Linus' master branch).
I narrowed down the issue to two commits:
311770173fa ("drm/i915/gt: Schedule request retirement when timeline idles") and 35cc7f32c29 ("drm/i915/gt: Use non-forcewake writes for RPS")
For the "Schedule request ..." commit, I was able to keep the GPU speeds down (to 300MHz at idle) by removing the "do(){}while()" loop in engine_retire() in .../drivers/gpu/drm/i915/gt/intel_gt_requests.c with plain braces (so the loop only runs once).
For the "Use non-forcewake ..." commit, I reverted the entire commit.
Doing these actions on Linus' tip (as of b74b991fb8b9, pushed today) allows my GPU to idle again @300MHz, and there seems to be no effect on my system that I can see (and I run a three-monitor setup).
So, questions for the devs:
1 - Is there any adverse effect in other ways that may come from these reverts/changes? 2 - Is there anything I can do (provided it's just a side-effect) to help you guys have the effects of these changes without keeping the GPU frequency pegged?
-Kenny