[PATCH stalld 06/52] tests: Fix task exit timing in test_boost_restoration
Wander Lairson Costa <[email protected]> Mon, 8 Jun 2026 15:31:16 -0300
| Newsgroups | org.kernel.vger.linux-rt-users |
|---|---|
| Message-ID | <[email protected]> |
Test 5 verifies that stalld handles a task exiting during an active boost. The starvation duration was set to threshold minus two seconds, causing the task to exit before the detection threshold was reached. As a result, the task was never boosted and the test silently passed without exercising the intended code path. Lower the threshold and compute the starvation duration as threshold plus three seconds so that the task survives long enough to be detected and boosted, then exits mid-boost as originally intended. Signed-off-by: Wander Lairson Costa <[email protected]> Assisted-by: Claude Code:claude-opus-4-6[1m] [PAL] --- tests/functional/test_boost_restoration.sh | 10 +++++----- tests/functional/test_runqueue_parsing.sh | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/functional/test_boost_restoration.sh b/tests/functional/test_boost_restoration.sh index fb886bd..c2a04f3 100755 --- a/tests/functional/test_boost_restoration.sh +++ b/tests/functional/test_boost_restoration.sh @@ -338,16 +338,16 @@ sleep 1 #============================================================================= test_section "Test 5: Graceful Handling of Task Exit During Boost" -threshold=10 -boost_duration=5 # Task will exit during boost (after 8s, boost is 5s) +threshold=5 +boost_duration=5 log "Starting stalld with ${threshold}s threshold, ${boost_duration}s boost (task will exit during boost)" rm -f "${STALLD_LOG}" start_stalld_with_log "${STALLD_LOG}" -f -v -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} -d ${boost_duration} -N -i "kworker" -# Create starvation that exits after threshold - 2s (so 8s) -# This ensures the task exits DURING the boost period -short_duration=$((threshold - 2)) +# Task must survive past the threshold to be detected and boosted, +# then exit during the boost window. +short_duration=$((threshold + 3)) log "Creating starvation that will exit after ${short_duration}s" start_starvation_gen -c ${TEST_CPU} -p 80 -n 1 -d ${short_duration} diff --git a/tests/functional/test_runqueue_parsing.sh b/tests/functional/test_runqueue_parsing.sh index f5c2861..a4dc180 100755 --- a/tests/functional/test_runqueue_parsing.sh +++ b/tests/functional/test_runqueue_parsing.sh @@ -90,7 +90,7 @@ if [ ${BPF_AVAILABLE} -eq 1 ]; then threshold=5 log "Starting stalld with eBPF backend (queue_track)" # Use -g 1 for 1-second granularity - start_stalld -f -v -g 1 -l -b queue_track -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${STALLD_LOG_BPF}" 2>&1 + start_stalld -f -v -g 1 -N -l -i "kworker,ksoftirqd" -b queue_track -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${STALLD_LOG_BPF}" 2>&1 # Create starvation to generate task data starvation_duration=$((threshold + 5)) @@ -135,7 +135,7 @@ if [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then threshold=5 log "Starting stalld with sched_debug backend" - start_stalld -f -v -g 1 -l -b sched_debug -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${STALLD_LOG_SCHED}" 2>&1 + start_stalld -f -v -g 1 -N -l -i "kworker,ksoftirqd" -b sched_debug -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${STALLD_LOG_SCHED}" 2>&1 # Create starvation starvation_duration=$((threshold + 5)) @@ -192,7 +192,7 @@ if [ ${BPF_AVAILABLE} -eq 1 ] && [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then log "" log "Running with eBPF backend..." rm -f "${STALLD_LOG_BPF}" - start_stalld -f -v -g 1 -l -b queue_track -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${STALLD_LOG_BPF}" 2>&1 + start_stalld -f -v -g 1 -N -l -i "kworker,ksoftirqd" -b queue_track -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${STALLD_LOG_BPF}" 2>&1 start_starvation_gen -c ${TEST_CPU} -p 80 -n 2 -d ${starvation_duration} @@ -209,7 +209,7 @@ if [ ${BPF_AVAILABLE} -eq 1 ] && [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then log "" log "Running with sched_debug backend..." rm -f "${STALLD_LOG_SCHED}" - start_stalld -f -v -g 1 -l -b sched_debug -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${STALLD_LOG_SCHED}" 2>&1 + start_stalld -f -v -g 1 -N -l -i "kworker,ksoftirqd" -b sched_debug -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${STALLD_LOG_SCHED}" 2>&1 start_starvation_gen -c ${TEST_CPU} -p 80 -n 2 -d ${starvation_duration} @@ -264,7 +264,7 @@ if [ -n "$test_backend" ]; then log "Testing task field extraction with ${test_backend} backend" rm -f "${log_file}" - start_stalld -f -v -g 1 -l -b ${test_backend} -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${log_file}" 2>&1 + start_stalld -f -v -g 1 -N -l -i "kworker,ksoftirqd" -b ${test_backend} -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${log_file}" 2>&1 # Create starvation with known parameters log "Creating starvation with known task name (starvation_gen)" @@ -317,7 +317,7 @@ if [ ${SCHED_DEBUG_AVAILABLE} -eq 1 ]; then threshold=5 rm -f "${STALLD_LOG_SCHED}" - start_stalld -f -v -g 1 -l -b sched_debug -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${STALLD_LOG_SCHED}" 2>&1 + start_stalld -f -v -g 1 -N -l -i "kworker,ksoftirqd" -b sched_debug -t $threshold -c ${TEST_CPU} -a ${STALLD_CPU} > "${STALLD_LOG_SCHED}" 2>&1 # Create brief starvation just to initialize the backend start_starvation_gen -c ${TEST_CPU} -p 80 -n 1 -d 8 -- 2.54.0