Commit 068928e ("Add support for controlling amd-pstate core
performance boost") started setting the newly-introduced `boost`
parameter in the balanced and powersave profiles, but forgot to do the
same in the performance profiles. The net result was that transitioning
directly from the powersave profile to a performance profile would leave
boosting disabled.
Fix this by setting boost=1 explictly in all performance-oriented
profiles (i.e., those with a min_perf_pct of 100).
Fixes: 068928e ("Add support for controlling amd-pstate core performance boost")
Apply specific kernel network tuning parameters to the OpenShift profile
(/profiles/openshift/tuned.conf) to support high bandwidth-delay product links.
The following TCP settings are added:
net.ipv4.tcp_notsent_lowat=131072: Sets tcp_notsent_lowat to a value intended to balance throughput and latency while limiting total socket memory usage.
net.ipv4.tcp_slow_start_after_idle=0: Disables slow start after a connection has been idle, allowing immediate maximum throughput upon resuming data transfer.
net.ipv4.tcp_rmem="4096 131072 16777216": Increases the maximum TCP receive buffer size to improve performance on high-bandwidth-delay product connections.
net.ipv4.tcp_wmem="4096 16384 16777216": Increases the maximum TCP send buffer size for similar reasons.
These changes are based on work done by Cloudflare for improving TCP
performance on high bandwidth-delay product links but are more conservative in adjusting rmem and wmem
Reference: https://blog.cloudflare.com/optimizing-tcp-for-high-throughput-and-low-latency/
Signed-off-by: Graham Heffern <gheffern@gmail.com>
Wrong hook directory can make the machine unbootable:
https://issues.redhat.com/browse/RHEL-119889
Also added workaround for currently non-functional systemd plugin
which doesn't include the systemd config into the initrd image.
Resolves: RHEL-40619
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
- When boost=0 is set on Intel systems with intel_pstate driver, it automatically sets no_turbo=1
Resolves: #788
Signed-off-by: Suyash Nalawade <sunalawa@redhat.com>
This makes the function output shorter which is desirable
with many CPUs when the function is used, e.g., to compute
the content of the isolcpus kernel argument.
Resolves: RHEL-75751
Same for dirty_background_ratio and dirty_background_bytes.
Using both the ratio and the bytes is not compatible with
the current profile inheritance implementation, because it
is not possible for dirty_bytes in a child profile to override
dirty_ratio in its parent profile.
Resolves: RHEL-101578
The inodes backing the kernfs virtual files for the attributes we watch
may be dropped by the kernel due to memory exhaustion or explicit user
action (sysctl vm.drop_caches). This causes inotify events to not be
delivered as kernfs_notify() simply drops the event if the inode cannot
be found in the kernel caches.
Fix this by explicitly pinning the attributes virtual files in memory to
ensure we receive inotify events.
This is a pretty straightforward wiring up of the `make rpm`
flow and then installing it in a bootc container image.
Intended as a starting point both for local development
but also wiring up further CI.
Signed-off-by: Colin Walters <walters@verbum.org>
If TuneD-appended kargs are present and do not match
the kargs to be appended, we should remove them. This
can happen if there was no profile rollback, e.g.,
when using the no-daemon mode.
Resolves: RHEL-86814
The bootloader plugin claims that it does not mess
with existing kernel parameters; make sure we adhere
to that also for rpm-ostree systems:
1. Only append a new karg if the same key=value pair
does not already appear in kernel parameters. If we would
duplicate it, it would not be possible to determine which
one to delete when unapplying the profile.
2. Do not delete existing key=value pairs when the profile
adds a karg with another value for the key. A single key can
appear multiple times in the kernel parameter list with different
values.
Also make sure new kargs are added exactly in the order in which
they appear in the profile. This is especially important for kargs
related to hugepages.
Resolves: RHEL-45836
It now uses TuneD udev events buffer size which is by default 1 MB
instead of the 8 kB default udev buffer size. The buffer size is
configurable in the tuned-main.conf. This should prevent filling
of the buffer even in case of a storm of udev events. It also
contains workaround for the pyudev bug:
https://github.com/pyudev/pyudev/issues/194
Even if the buffer is filled now, the udev queue is no more stuck
and error is logged.
Resolves: RHEL-92637
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>