blob: 515a10263ca145bcfa5bcb1bc301e7837183f355 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later
# description: Test stall monitor
# requires: available_reactors stall:monitor printk:reactor stress-ng:program
THRESHOLD=/sys/module/stall/parameters/threshold_jiffies
ORIG_THRESHOLD=$(cat $THRESHOLD)
trap 'echo $ORIG_THRESHOLD > $THRESHOLD' EXIT
load() { # returns true if there was a reaction
local lines_before cpu
cpu=$(($(nproc) - 1))
lines_before=$(dmesg | wc -l)
stress-ng --cpu 1 --taskset "$cpu" --sched rr --sched-prio 1 -t 3 &
stress-ng --cpu 5 --taskset "$cpu" -t 3 &
wait
dmesg | tail -n +$((lines_before + 1)) | grep -q "rv: monitor stall does not allow event"
}
echo 5000 > $THRESHOLD
echo 1 > monitors/stall/enable
echo printk > monitors/stall/reactors
! load || false
echo 0 > monitors/stall/enable
echo 70 > $THRESHOLD
echo 1 > monitors/stall/enable
load
echo nop > monitors/stall/reactors
echo 0 > monitors/stall/enable
|