Loading...
Loading...
What were you trying to do that didn't work? Apply a TuneD profile that sets bootloader kernel arguments (e.g. cpu-partitioning, or a profile that includes it) on a RHEL 9.8 rpm-ostree / "RHEL for Edge" host that is booted the traditional ostree/BLS way (not provisioned or managed by bootc), but which has the stock bootc package installed. tuned-adm profile <profile> returns rc=0 and runtime tuning applies, but the kernel arguments are never staged to the bootloader: rpm-ostree kargs is unchanged and /proc/cmdline does not contain the arguments after reboot. Root cause: in tuned/plugins/plugin_bootloader.py (upstream commit 4baaf40, downstream RHEL-170825 Integration ) the plugin probes bootc loader-entries set-options-for-source --help at init and, if it returns 0, dispatches through the bootc path before the rpm-ostree path (they are mutually exclusive, bootc wins). The probe only tests whether the bootc binary supports the subcommand — not whether the system is actually bootc-managed. Since bootc ≥ v1.15.2 (here bootc-1.16.4-1.el9_8) ships that subcommand and is present in the RHEL 9.8 base image, a traditionally-deployed rpm-ostree host is misclassified as bootc and runs bootc loader-entries set-options-for-source --source tuned, which does not update the rpm-ostree/BLS boot entry the host actually boots from. The kargs are silently lost. Suggested fix: gate the bootc branch on the system actually being bootc-managed (e.g. a booted bootc image per bootc status), not merely on the binary supporting the subcommand. What is the impact of this issue to you? All low-latency / real-time kernel-argument tuning is silently broken on RHEL 9.8 rpm-ostree hosts that carry the stock bootc package. tuned-adm reports success, so nothing surfaces except that the tuning never takes effect — dangerous for production low-latency deployments. It also blocks MicroShift low-latency CI across releases and architectures; we are temporarily pinning tuned to 2.27.0 as a workaround. Please provide the package NVR for which the bug is seen: tuned-2.28.0-1.el9fdp (broken). Last known good: tuned-2.27.0-2.1.20270724git0eb28ac3.el9fdp. Environment, identical across the good/bad boundary: bootc-1.16.4-1.el9_8, rpm-ostree-2026.1-6.el9_8, grub2-tools-2.06-126.el9_8, grubby-8.40-69.el9. Reproduces on x86_64 and aarch64. How reproducible is this bug?: Always (100%). Steps to reproduce On a RHEL 9.8 rpm-ostree/edge host that has the bootc package installed but was deployed/booted via ostree (not bootc install): Confirm bootc supports the subcommand (so tuned will pick the bootc path): bootc loader-entries set-options-for-source --help; echo rc=$? → returns rc=0 Apply a profile that sets bootloader kargs: echo "isolated_cores=1" > /etc/tuned/cpu-partitioning-variables.conf tuned-adm profile cpu-partitioning; echo rc=$? → returns rc=0 rpm-ostree kargs → no new kargs staged systemctl reboot After reboot, check the kernel command line: grep -o 'nohz=on' /proc/cmdline || echo MISSING Expected results The kernel arguments are staged (visible in rpm-ostree kargs) and present in /proc/cmdline after reboot — as happens with tuned-2.27.0 on the same host. Actual results tuned-adm returns 0, but no kargs are staged via rpm-ostree and /proc/cmdline lacks the profile's kernel args after reboot. Step 3 prints MISSING.
Unresolved
Red Hat Integration
Learn more about where this data comes from
BugZero Plan
Streamline upgrades with automated vendor bug scrubs
BugZero Prevent
Wish you caught this bug sooner? Get proactive today.