-
Bug
-
Resolution: Unresolved
-
Undefined
-
None
-
rhel-10.2
-
None
-
None
-
None
-
rhel-kernel-rts-time
-
0
-
False
-
False
-
-
None
-
None
-
None
-
None
-
Unspecified
-
Unspecified
-
Unspecified
-
None
During investigation of RHEL-114506, an unexpected behavior was observed.
Observation
When only a FIFO bash process is running on a CPU (without any SCHED_NORMAL/fair task), the RCU kthreads (rcuc/, ktimers/, irq_work/*) are not being boosted by stalld, even though they would normally be detected as starving.
Test scenario
# Only run FIFO task on CPU 1
taskset -c 1 chrt -f 40 bash -c 'while :; do :; done' &
# Run stalld monitoring CPU 1
taskset -c 0 stalld -v -b queue_track -c 1 -a 0
In this scenario, the RCU kthreads are not boosted by stalld.
However, when a SCHED_NORMAL task is also present on the same CPU, stalld correctly detects and boosts the starving RCU kthreads.
Hypotheses
- Without a normal task running, the RCU threads may not need explicit scheduling because their work might be done in the context of the running FIFO process or during scheduler switches.
- There may simply be nothing for the RCU kthreads to do in this scenario.
Investigation needed
This may or may not be a stalld bug. If the test case behavior is erratic, this could be kernel-related rather than a stalld issue.
Verify whether this is expected behavior or requires changes in either stalld's detection/boosting logic or the kernel scheduler.
This was observed in the kernel version 6.12.0-183.el10.x86_64+rt.