I don't use the most powerful laptop I can get my hands on, my hardware budget tends to go to the bigger workstation mostly. I purchased an Asus ProStudio W7604 in late 2024 with an i9-13980HX Intel CPU. Less powerful than the ROGs or TUF that I would normally get, but a competitive price (that was right before the whole tariffs debacle started).
The CPU is one of those reasonably new architectures with a makeup of 'Performance cores' (8 cores, 16 threads) and 'Efficiency cores' (16 cores, 16 threads). The cores have different maximum boost and sustained frequencies. I thought I could just set the power profile to 'performance' and be done with it.
That worked well enough for a while, until I noticed something was off. I maintain a pretty large C++ build job that can be done either on Linux or on Windows over WSL2. I dual boot this laptop between Arch and Windows 11, and I had recently started using it to test those builds.
I noticed that Windows was working the system a lot harder that Linux would. Upon closer inspection I saw that on Linux the P-cores would happily settle at 2.8GHz for the duration of the build, while Windows had no qualms running them at 3.8GHz. Rhu rho.
That sent me down a rabbit hole of attempts and dead ends before I could improve the situation. I used Kagi's Research Assistant and tried various things .. the traditional ways to talk to talk to the Embedded Controller (EC) don't work (hardware is too recent?), the more modern "Windows Management Instrumentation" (WMI) did not work (no firmware support?).
After tweaking kernel command line (intel_pstate=active acpi_enforce_resources=lax) I was able to issue a direct ACPI call to set EC thermal profile to performance: echo '\_SB.ATKD.FANL 0x02' > /proc/acpi/call and do a bunch of other magic with the throttled service to set the CPU package power levels higher for sustained used (around 100W, although I think I could go a little higher).
Nothing has melted yet. The build on Windows takes 37 minutes, the build on Linux is now 20 minutes.


I put the 10 minutes difference down to better I/O performance and the Linux kernel being generally better. It seems though that Windows bounces between PL1 and PL2 every 20 seconds or so. It's definitely losing an edge there.
Here's a more detailed summary produced by Kagi once I got everything working - more detailed information if you run into a similar issue:
ASUS ProStudio W7604 / i9-13980HX / Arch Linux — Performance Optimization Session Summary
Discussion
Join the conversation on MastodonLoading comments...