Performance gains of undervolting a T480s

I have been using a self-refurbished Thinkpad X230 for quite a while as a personal machine. I believe in the benefits of continuing to use old laptops [1, 2, 3]. However, recently, I’ve started to need to use a laptop to do presentations frequently, and the HDMI port on my X230 is not functioning fully, resulting in distorted colors and other distracting artifacts. I might try and repair that, someday.

However, due to pressing need, I instead picked up a used T480s from a good friend, which had a working HDMI port.

Over the first couple days of use, I noticed that this thing ran hot. Sure, I have the i7-8650u version, but the fans were spinning up far more than I’d like, and CPU temps would frequently exceed 95 °C for bursts at a time.

Naturally, I did a little digging.

It turns out, Linux and the T480s have a longstanding problem! I don’t understand the problem well enough to explain it here. But, essentially, people were seeing throttling and temperature issues with these machines on Linux (but not Windows). To be clear, this issue was found on an old Linux kernel (4.15, I’m on 6.14). I do not know if this specific problem is affecting me. However, through this, I learned about a fun tool for undervolting a T480s: throttled.

Even if this issue was resolved in newer kernels, I imagined that some undervolting could still help my thermals and performance. So, I tried it. In addition, to give the attempt the best chance it had, I also replaced the thermal paste with fresh Duronaut.

I was surprised to find a 12% improvement in single-core performance and a 24% improvement in multi-core on Geekbench 6!

MetricOriginalOptimizedChange (%)
Single-core13411499+11.8
Multi-core39894948+24.0

The laptop runs much cooler, and the fans spin up much less. It’s much more pleasant to use.

I ultimately landed on the following undervolt for this machine. (Remember, each chip is different, you might not be able to use these values.)

# All voltage values are expressed in mV and *MUST* be negative (i.e. undervolt)!
[UNDERVOLT]
# CPU core voltage offset (mV)
CORE: -135
# Integrated GPU voltage offset (mV)
GPU: -105
# CPU cache voltage offset (mV)
CACHE: -135
# System Agent voltage offset (mV)
UNCORE: -105
# Analog I/O voltage offset (mV)
ANALOGIO: 0

What a satisfying way to squeeze a little more performance out of a still-great laptop.

Posts from blogs I follow

The Past, Present, and Future of Digital Storytelling with Ramy Katrib

Ramy Katrib has been at the forefront of digital storytelling for over 25 years, with his post-production company, DigitalFilm Tree, earning a reputation as one of Hollywood's most technically adventurous post-production houses. He joined Bryan and Adam to explore the past, prese…

via Oxide and Friends July 23, 2026

On AI

In 2019, I started watching Andreas Kling's programming videos, many of which were live-coding sessions writing his new operating system Serenity OS. He was always pretty fast at writing code, especially since his IDE, Qt Creator, had knowledge of all his C++ code and could auto-…

via joshua stein July 23, 2026

Hardening Rust Code For Production

We talked about patterns for defensive programming in Rust before, in which implicit invariants that aren’t enforced by the compiler lead to utter misery. But being careful isn’t enough! Even valid code can fail at runtime in ways that are hard to predict and control. That’s what…

via Corrode Rust Consulting July 23, 2026

Generated by openring-rs from my blogroll.