What’s an appropriate operating temperature for a CPU under load? 70C? 75C? How about 95C? That’s what Lenovo apparently thought when designing the T480s.

Thermals are important with this build. I didn’t focus too much on it initially, because remember when I opened the Stealth up? It had cooling on lock, even though the fans were noisy.

Keep that in mind for later. Let me regale you with my encounter.

tHiNk, which is what some of Lenovo’s engineers should have done.

Lenovo’s box design seems a little outdated, but at this point I’m desperate. This thing has the specs and it wasn’t a Matebook X Pro, so that’s a plus. Additionally, it has some great port options and it still has a dGPU, though it’s the 10W TDP version of the MX150, I was hopeful it would still be up to snuff for light gaming over Intel.

(I apologize for the lack of screenshots, but I wrote this and the last post after I sent the devices back, so I can’t grab shots as I write.)

Looking at the device itself, it’s definitely a Thinkpad. It looks like the model I ordered, plus a few extras (WWAN chip), but at this point I’m just looking at performance. I did notice that the left Ctrl key was clicking and refusing to depress sometimes, which was a bummer, because I had grown to like the newer Thinkpad keyboard despite it not being the older model that everyone swears by.

I swapped out the SSD, which I’ve gotten very used to at this point. With a few tweaks (PCI device changes, mostly), I get it up and running with gpuswitch. The specs are, after all, pretty similar to the Blade Stealth. I decided to test loads on it.

Thermal Throttling

Intel’s 8th gen U-series chips can put out some serious heat when running - to their credit, their performance can be on par with some desktop chips from a couple of generations ago. They’re ultrabook manufacturer’s chips of choice because they can be very power efficient on the low end. According to indel, their TDP is 15W, and can be raised to 25W and lowered to 10W depending on how the system manufacturer feels their device can reasonably sustain.

With this in mind, it sort of affirms the build as being sane. These chips are powerful for single-core, certainly, and running at something like 3Ghz on all 4 cores and 8 threads seems great for a laptop processor, and fine for games when you consider not a whole lot is going to realistically load all 8 threads at the same time for an extended period of time.

The problem, then, is heat. See the cooler in the above picture? Two thin heat pipes and one fan for an i7 and a MX150?

“Hey, it’s fine though!” You might say. “The maximum operating temperature for the i7 is 100°C!” Well sure, that’s all fine, but I’m planning on this setup being my main machine for a decent while and I’d rather not jeopardize the longevity of my internal components and also burn my hands while I’m at it.

Lenovo (and some other laptop manufacturers) solve this problem by throttling the CPU’s performance when a certain temp threshold is hit. This is fine, but I do want control over my CPU’s behavior and I should decide the temp limit that I’m comfortable with.

Overriding Limits with throttled / lenovo-throttling-fix

throttled (formerly lenovo-throttling-fix) lets users pretty much customize the behavior of mobile processors when they get to high temperatures. It overwrites the default values in the processor’s MSR and MCHBAR registers every x seconds. This usually stops the EC (Embedded Controller) from resetting these values to default.

With this tool, we can push the limits of these mobile processors up to as high as their cooling will allow…

Undervolting

throttled also lets us undervolt, saving battery life and letting us squeeze out a bit of performance at the high end of temperature limits.

With these tools at my disposal, I figured I could push the limits of the T480s, and later, the XPS 9380.

Not so.

Testing

T480s

Unfortunately, I didn’t test the T480s much before I sent it back. The temperatures were just too bad for me - a stock stress test with s-tui pushed it up to just about 100C, which is not exactly where I want to be. The abysmal heat pipe just can’t cut it.

Un-throttled, performance isn’t great in real-world scenarios, and this laptop was extremely expensive in this configuration. Additionally, the one thing I can’t really solve for is GPU thermal throttling, and the T480s’s 10W 2GB VRAM MX150 throttled (Overwatch, for example) down to unplayable framerates.

Additionally, that whole fan assembly is expected to cool both the i7 and 10W MX150. Just not happening while both are under heavy load.

So I moved on.

XPS 9380

(on the left, the new 9380, on the right, my very used 9350)

I also decided to try the latest XPS 13 model, since hte 9350 had treated me so well. The XPS was a more interesting beast. I don’t have fan control, but I should be able to tweak the fan/cooling (?) profiles with smbios-thermal-ctl. Or so I thought, but testing the different modes didn’t actually do anything, and I couldn’t tell any difference in fan performance, clocks or temps between Performance and Balanced.

Stock

Idle

  • 45-50C
  • 4.5W

Multicore Stress

  • 67C
  • 15W
  • 2.5Ghz/core

Undervolted (-90mV Core, Cache)

(I settled on -90mV. I did my testing my playing A Hat In Time on Proton/DXVK, which seems to especially punish this setup, and using mprime. Everything below -90mV was unstable.)

Idle

  • 37-50C
  • 4.4W

Multicore Stress

  • 66C
  • 15W
  • 2.68Ghz/core

Undervolted, TDP Adjusted (25w burst, 22w constant)

Multicore Stress

  • 80-82C
  • 22W
  • 3.2Ghz/core

Single Core Stress

  • 82-87C
  • 22-25W
  • 3.8Ghz/core

At this point I wasn’t impressed. I did apply paste (Thermal Grizzly Kryonaut), but it only really brought down idle temps and let me squeeze a little bit more out of the clocks.

(the bad, stock paste)

(the pretty underpowered cooler, similar to the T480s, though this one doesn’t have to cool an MX150)

I was willing to live with it, since I tested with OBS @ 720p48 playing Momodora: Reverie Under the Moonlight (great game btw), which pegs a single core, and I was getting mid-to-high 80s with decent performance. I even threw thermal pads on to try and spread heat to the back, but figured this probably wasn’t the compromise I wanted to make.

Unfortunately, at this point, the laptop started to throw hardware errors and lock up. I thought it was my undervolt, but even after removing the undervolt and allowing stock thermal throttling to keep the CPU safe, it was still spitting errors at 80C.

Additionally, a HiDPI display made my GPUSwitch life hard. I had to create different configs for polybar, kitty, compton, and different .xprofiles… It wasn’t fun.

So I returned it too.

And Another Thing - Battery Life

QHD is a hell of a battery killer. With both the XPS 13 and the T480s, I was getting about 4 hours of battery life for light web browsing no matter what I did. This is after disabling Bluetooth and WWAN in the BIOS, and making sure nothing was consuming power rampantly.

One Last Thing - Using Vulkan on Intel with an NVIDIA eGPU

When I was settling for using Intel graphics on the go, I needed a way to use the Intel Vulkan drivers, but it turns out that once you follow a guide tailored for Nvidia, you need to mess around setting VK_ICD_FILENAMES to the explicit loader you want to use.

tl;dr: I made GPUSwitch link .xprofile with this entry for Intel: export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json

And this entry for NVIDIA: export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json

Blade Stealth Again

After experiencing both absolutely abysmal cooling solutions on the XPS 13 and the T480s, I decided that the tradeoffs weren’t worth it. The only piece of hardware that fit all of my needs was the Blade Stealth 2019, plain and simple. The large heat pipes that Razer put in - knowing that it would be used with an eGPU - turned out to matter (surprise!).

Power Issues

So then, what of the power issues? I had written this off initially, since we tested with the 87w MacBook charger and nothing changed. However, even before I sent back the Blade, there was a report of one particular charger working to keep the laptop charged during heavy load. The Wacom 100w USB-C PD Charger, for $79. So I took the plunge. I wanted this to work.

My test for draining the battery before had been running Overwatch on the MX150, which would drain the battery in about 1.5-2 hours when plugged into the 65w charger. It turns out, when plugged in to the 100w charger, under an extremely high load, the battery doesn’t drain at all.

This implies that it is in fact a hardware issue - the laptop doesn’t want to take enough power in, whether due to a configuration issue or a deliberate design decision (heat, potentially?). It just seems odd that it’s marketed as a gaming laptop, pushing playing Fortnite on the go, when you’ll only ever get about an hour and a half of game time, even when plugged in.

New BIOS Updates

I had emailed Razer support before sending the laptop back, in order to let them know about the problem and see if there was anything they could tell me about it, or at the very least tell their engineers about it.

The interaction went something like this:

  • Hi, I’m having an issue with your laptop where it doesn’t charge under load. I think it’s a hardware issue.
  • Oh, that shouldn’t be happening. Can you uninstall the Windows drivers and see if it persists?
  • I am running Linux, and have tested multiple chargers, it seems like a hardware problem. [Long explanation of why, and please tell your engineers.] I’ve also tested uninstalling the drivers on Windows, and it does not make a difference. I think the laptop might need a BIOS update.
  • That’s odd, can you give me a Windows battery report?
  • I’ve returned the laptop.

And I wrote it off.

Weeks later, as I was deep in testing the T480s, NotebookCheck posted a follow-up to their review, claiming Razer had reached out to them and let them know that a BIOS update to solve the charging issues was incoming.

Now that I had the Blade again, I considered installing the updates, but I had seen reports of the new BIOS update “solving” the problem by downclocking the MX150 in order to draw less power. Without a way to do any sort of diff on the updates, and without a changelog, I’ll have to do more research and potentially look for folks who have installed it to see what the behavior is.

I am running the Blade, this time, using intel-undervolt (shoutout to the author of the tool, kitsunyan, for writing a neat blog post on the topic too) to adjust thermal limits and underclock.

And so ends this series, for now. I am pretty happy with the Blade Stealth now that I can circumvent its big downside, even if I do have to carry a largeish charger whenever I am planning on gaming.

Thanks for reading!