Question about Bazzite system-level Linux settings (preemption model & CPU governor)

Hello everyone!

I’m considering installing Bazzite on my Steam Deck.

Currently, I make use of all of A.B.T.'s SteamOS tweaks myself, so I was happy to know that Bazzite applies most of them by default already, including a 1000 Hz kernel tick-rate.

Fedora, which Bazzite is based upon, uses the voluntary preemption model by default, AFAIK.

Is this also the case for Bazzite?

I’m asking because SteamOS uses the full preemption model by default, which is very desirable for a gaming device, since it lowers the system latency.

Could anyone running Bazzite please check on this and report back?

You can find the result by checking the ouput of dmesg, like this:

sudo dmesg | grep -i preempt

Another thing I wonder about is the use of the powersave CPU governor in combination with AMD’s CPU driver.

I understand that AMD’s powersave governor more or less equals the schedutil governor on SteamOS.

However, personally I switched over to the performance governor on SteamOS, as recommended by A.B.T., which definitely improved the perceived smoothness of games running on my Steam Deck, while at the same time only slightly reducing the battery life, which overall is a net win, IMHO.

Has anyone running Bazzite ever experimented with AMD’s performance CPU governor?

If so, how is the experience compared to AMD’s powersave CPU governor?

Thanks, looking forward to any replies!

Preempt output:

[    0.000000] Linux version 6.9.12-203.fsync.fc40.x86_64 (mockbuild@230df91fcb63489ba2690a7cc9fbd859) (gcc (GCC) 14.1.1 20240701 (Red Hat 14.1.1-7), GNU ld version 2.41-37.fc40) #1 SMP PREEMPT_DYNAMIC Sat Aug  3 09:55:34 UTC 2024
[    0.110419] Dynamic Preempt: voluntary
[    0.110475] rcu: Preemptible hierarchical RCU implementation.

Not sure which governor is used, but on Gnome Bazzite you have three basic options listed in top bar. Performance, balanced, and power saver.

Cheers.

1 Like

Thanks alot for the reply and the output from dmesg!

As I expected, Bazzite uses the same default voluntary preemption model like Fedora, which is not an optimal setting for a distro focused on gaming.

Valve makes use of the full preemption model on SteamOS, which noticeably lowers overall system latency, especially when under load of demanding games.

If a Bazzite developer reads this, then please strongly consider switching over to the full preemption model by default when configuring & compiling the Linux kernel, as that will greatly improve the overall smoothness of Bazzite and match SteamOS in that aspect.

Thanks!

EDIT:

Alternatively, a Bazzite developer can also opt to simply set the following kernel parameter as a boot option by default, since the Fedora kernel is already configured with the PREEMPT_DYNAMIC kernel configuration option:

preempt=full

Hope it helps!

2 Likes

We were deferring this decision to Fedora as they were already in the process of making it, but looking at the issue it’s stalled out. I’ll roll this out in a future update. Appreciate the input!

2 Likes

Thank you very much, as this change will definitely improve Bazzite on all devices out there!

Also, have you ever tried out the AMD performance CPU governor via Bazzite running on a Steam Deck?

If so, how was your experience?

Thanks once more!