Undervolting the New Dell XPS 15 7590 on Arch Linux

I love the simplicity of Arch Linux. Being able to install everything via my systems package manager is an absolute joy. My heart desires running the oh so shiny and new versions of my favorite software.

I hate the seemingly semi-annual issues I have after I run an update.

I get it though, you can’t run the latest stuff without running into some issues
from time to time.

My current dilemma after an upgrade a few weeks back is two fold. First, my
Brave browser has become laggy when opening, opening new windows and tabs. I’ve been through the usual motions of re-installing the package and disabling all of my extension (which isn’t a large number).

The second issue, and the one that is more of a blocker than an inconvenience is my system completely locking up, seemingly related to when I receive a
notification in GNOME.

Originally I thought the issue was caused by Slack, since that’s one of the few
applications I receive notification from. I’ve since experienced the same exact
issue with other applications when they notify me.

The gnome-shell process peaks at 100%+ and journalctl barks about devices being removed and systemd-logind “getting pause” for a bunch of different times.

I originally blamed my hardware as I hadn’t gleaned the correlation of the
aforementioned errors in the logs with the lock ups, but that never made a ton
of sense because things only started up after an upgrade recently.

The reason I thought it was my hardware was because of the known issues with thermal throttling with the higher end processors in the New Dell XPS 15 7590.

What is undervolting?

This assumption exposed me to “undervolting” and got me experimenting with that to see if it would resolve things. It didn’t solve the lock ups, but it did seem
to clean up the majority of the CPU clock throttling errors I was seeing in the
logs.

Delving into undervolting also made me realize that most of my peer circle,
especially those that using Apple systems had no idea what undervolting was.

Undervolting is the act of starving your CPU or GPU of power. It will run
slower, but because it’s not going full tilt, it will run cooler. Because it
runs cooler, it will avoid overheating / throttling conditions. And by avoiding
that, your CPU / GPU will perform more consistently and actually perform better.

Many manufacturers will deliberately undervolt the CPU to help achieve these
more consistent performance scenarios. This comes in extremely handy on laptops where the cooling mechanisms may not be that ideal.

Undervolting Intel processors

Okay, enough story time and explaining things. To undervolt a system in Arch
Linux, specially the New Dell XPS 15 7590, you will need to install the
intel-undervolt package from the Arch User Repository:

yay install intel-undervolt
Zsh

Once installed, you will need to configure the package, and then enable and
start the systemd service:

su -c 'vim /etc/intel-undervolt.conf'
Zsh

Once open, you can tweak the lines that start with undervolt # near the top of the file.

I’m actually not entirely sure what the best settings are for this and am still
experimenting. Currently I’m using -125 and -100 for the CPU and CPU Cache
respectively. I am not using the Nvidia GPU while running Linux, so I didn’t
bother to tweak that setting.

The offset values are in millivolts, mV, and my conf file looks like this:

undervolt 0 'CPU' -125
undervolt 1 'GPU' 0
undervolt 2 'CPU Cache' -100
undervolt 3 'System Agent' 0
undervolt 4 'Analog I/O' 0
Zsh

Upon saving the file and exiting, you’ll next want to enable the systemd
service and start it so your undervolting settings will be applied when you
restart your system:

su -c 'systemd enable intel-undervolt && systemd start intel-undervolt
Zsh

To check that the settings have been applied, you can check the status of the
service, or called intel-undervolt with the read command:

su -c 'systemd status intel-undervolt'
su -c 'intel-undervolt read'
Zsh

To apply the new settings from the conf file, restart the service, or run
intel-undervolt with the apply command:

su -c 'systemd restart intel-undervolt'
su -c 'intel-undervolt apply'
Zsh

As mentioned, undervolting didn’t necessarily eliminate the gremlins I’ve been
experiencing, but I rarely see any throttling notices showing up when I run
journalctl and that’s a good thing.

I’m going to keep experimenting with the settings to try and eliminate those
notices completely. If you happen to be undervolting your New Dell XPS 15 7590 and have some settings you’d like to share, please comment below!

Josh Sherman - The Man, The Myth, The Avatar

About Josh

Husband. Father. Pug dad. Musician. Founder of Holiday API, Head of Engineering and Emoji Specialist at Mailshake, and author of the best damn Lorem Ipsum Library for PHP.


If you found this article helpful, please consider buying me a coffee.