Tweak for cpu governor `schedutil`?

Rate_limit_us is the frequency transition parameter of schedutil, the CPU governer.
Strangely, cpuinfo_transition_latency shows the maximum value of a 32-bit integer.

Because of that, the rate_limit_us of the schedutil governer shows the maximum value / 1000.
This is about 4.2s, which is a very long time.

In my opinion, the system show that maximum transition latency is 0.97ms.
1455us with 1.5 times the number of 970us by referring to the reference below.

I don’t know if this is the optimal, but at least I have a performance improvement.
(Decrease - more sensitive transition, Increase - less sensitive transition)

Command

$ echo "schedutil" | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
$ echo "1455" | sudo tee /sys/devices/system/cpu/cpufreq/schedutil/rate_limit_us

Systemd (on-boot)

$ sudo nano /etc/systemd/system/cpu-gov-config.service
[Unit]
Description=Set cpu gov config at boot
After=basic.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c '\
    echo "schedutil" | tee /sys/devices/system/cpu/cpufreq/policy0/scaling_governor && \
    echo "1455" | tee /sys/devices/system/cpu/cpufreq/schedutil/rate_limit_us'
User=root
Group=root
RemainAfterExit=true

[Install]
WantedBy=basic.target

Reference
https://lore.kernel.org/linux-pm/20240728192659.58115-1-qyousef@layalina.io/

1 Like