A couple of years ago, when I was considering which laptop to buy, I came upon a page that reviewed the model I ended up buying, the XPS 13 (9310). One of its complaints was about the massive amount of throttling because of the XPS’ “feeble” cooling system.
The XPS, out of the box, does throttle a lot under a sustained load. That was one thing I liked about the Xenia 14, which you might have noticed is no longer in my .sig. It had an issue, so I went in to RMA it to where I bought it, and they (Amazon) did not provide the option for exchange. I’ve returned it for refund, and I have not (yet?)vordered another one because of the issues I’ve mentioned before… most notably, the flexy, wobbly, flimsy lid, and the near total unavailability of parts. The firmware situation is bad too, but tolerable, and the greater power consumption than the XPS is also what I would call tolerable, though I would never stop trying to solve it.
I may buy another one at some point, once the refund for the original goes through, but I am leaning toward not doing that right now.
One of the tests I ran when I had the Xenia 14 was Cinebench 23 (for Windows, via WINE). The Xenia’s CPU is one step up from that in the XPS (i7-1165G7 and i5-1135G7, respectively). The i7 version has a slightly faster GPU, more cache memory, and 500 MHz more clock speed, which should not be a huge difference in performance. Indeed, when I ran the Geekbench benchmarks, I got ~1500 on the XPS and ~1700 on the Xenia 14 for single-core performance. Nice, but not that big of a difference… about 13% more performance for the Xenia and its i7.
Geekbench is a really short test, though. When I ran Cinebench 23, which loads a CPU heavily for at least ten minutes, the performance difference increased. The XPS scored 3959, while the Xenia 14 scored 5953… an increase of 50%.
The reason for this was something I was already aware of. The XPS 13 will run at full bore for a short time (limited by the CPU hitting the thermal limit of 100C), and then throttle down considerably, with the CPU hovering around 80C. That’s 20C of thermal headroom, and while that’s not a real problem with the kinds of workloads an ultrabook like the XPS is meant for, it did bother me that it would do that. I’d tried a few things to stop it… I tried a utility called intel-undervolt to boost the long-term power limit, but it still would throttle to 2400 (consistently) after a while, leaving that 20C of headroom.
Yesterday I tried something different.
The thermald package is part of an Ubuntu installation by default. It’s essentially the Linux version of the bits you see in the Windows Device Manager that mention the Intel Thermal Framework. By default, it operates in “zero conf” mode, for zero configuration. It grabs the thermal parameters from the ACPI tables in the UEFI, and normally does not require any config files.
Older versions of thermald required the user to use a small utility called dptfxtract to extract the ACPI tables and put them in the XML format that thermald understands. Now it can get that data right from the ACPI tables, but it can also use the XML config file if you tell it to.
I’ve extracted and played with the ACPI table data before with other laptops, but I never really had any reason to other than curiosity. But now, I thought it might be worth another look.
Inside the file, I saw several thermal sensors listed that would trigger cooling action when they got to a certain temperature. Could the throttling be from one of those?
I loaded the KDE utility KSysGuard, the old and deprecated equivalent of Microsoft’s Task Manager. Despite being older and officially deprecated, it’s still more fully featured than its replacement, so I have it installed alongside its replacement, System Monitor.
One thing KSysGuard can do that System Monitor cannot (as my laptop is currently set up) is to show all of the ACPI temperatures, the ones used by thermald. I had the program plot them all on a line graph, then started a Cinebench benchmark run. When it eventually throttled down to 2400, I immediately hit Printscreen to take a screenshot.
Several temperatures more or less followed the CPU temp, but there was one that slowly increased the whole time the benchmark run was going on, and that would slowly decrease once the run was over. I guessed this was the thermal sensor on the belly of the device, protecting the user’s lap from being burnt to a crisp.
I looked up the name of that sensor in the thermald file, and it was referenced a few times. The temperature it listed was quite close to the temperature it had reached when the severe throttling began. I increased these by about 6 degrees C.
For good measure, I also raised the power limit, but since the intel-undervolt utility was handling that, it should not have made a difference. I did check, and the revised values I gave it were holding at the point where it throttled to 2400.
I restarted thermald after saving the file, then ran a Cinebench test again.
It throttled up to ~3800 MHz (max boost on all four cores), but almost instantly hit 100C. Meanwhile, the fan was still off… the thing is so concerned with being quiet that it is reluctant to spin the fan up. Instead, it held the temp at 100C by throttling down. Once it reached 3300 Mhz, it stabilized (as the fan speed was coming up).
That much had happened before… but after 1-2 minutes, it would drop to 2400.
Not this time, though… it held at 3300 for the whole benchmark, and turned in a respectable result of 5264. That’s an improvement of 33%! That leaves the performance difference between the XPS and the Xenia 14 at 13%, the same differential I saw with the Geekbench data.
Could I have extracted still more performance from the Xenia using the same trick? It is possible, but I remember watching the clock rate as I ran that test, and it held almost the same clock from the start of the test until the end. I don’t think there was very much throttling going on there.
I tested the hypothesis that THP is the thermal sensor in the bottom of the unit by placing an ice cube on the case bottom where the thingy that I presume is where the sensor reads lives, and seeing what the real-time readout of THP indicated. There was a delay of 15 seconds or more, but the THP temp did drop when I did that (being careful to angle the thing so the vents were above the ice, so the drippage could not get inside), and after I concluded the test, the THP went back to where it had been before.
The XPS has four thermal modes selectable in the UEFI, and I have been using the one called “Balanced.” The others are “Quiet,” “Cool” (meaning the exterior of the laptop… it says that specifically), and “Ultra Performance.” Even in Ultra Performance mode, it throttled way down to 2400 at the same point in a benchmark. This might even be a regulatory thing, where some jurisdictions demand that the outside temp stay within some limit (EU?).
Now that this is “fixed,” what does it mean in real terms?
Basically, nothing. I didn’t buy this laptop to do hardcore stuff like protein folding, Mersenne prime finding, SETI (if that is still around), video editing, crypto mining (if people actually still do that), or software compilation. That is not what an ultrabook is meant to do (though I have to say that the Xenia would have done exceptionally well in that kind of workload despite being an ultrabook). It was more of a matter of wanting to see just how feeble the XPS cooling system really is, and what the unit can do when it is not throttled well below its thermal limit (the real limiting factor). Now that I know this, I still want the unit not to singe my lap when I use it plugged in, and to last as long as possible on battery. The workloads an ultrabook would normally see won’t ever get to that thermal throttling point, in all likelihood, unless the air inlets on the bottom of the case are blocked and it heat soaks the whole case bottom.
I doubt that the i7-1165G7 version of the XPS 9310 would perform much better than my i5 on Cinebench 23. It uses the same cooler that I have, so it won’t be removing any more heat. While the larger cache may make a small difference, and the i7 may operate at a slightly lower voltage (meaning slightly more clocks at a given temp), I think the difference would probably be slight. The Xenia has a cooling system that is very robust compared to that of the XPS, despite only having one fan (the XPS has two, but they are much smaller).
Dell XPS 13/9310, i5-1135G7/16GB, KDE Neon
XPG Xenia 15, i7-9750H/16GB & GTX1660ti, OpenSUSE Tumbleweed