1*0c0cd931SGabriele Monaco#!/bin/sh 2*0c0cd931SGabriele Monaco# SPDX-License-Identifier: GPL-2.0-or-later 3*0c0cd931SGabriele Monaco# description: Test wwnr monitor with printk reactor 4*0c0cd931SGabriele Monaco# requires: available_reactors wwnr:monitor printk:reactor stress-ng:program 5*0c0cd931SGabriele Monaco 6*0c0cd931SGabriele Monacoload() { # returns true if there was a reaction 7*0c0cd931SGabriele Monaco local lines_before num 8*0c0cd931SGabriele Monaco num=$((($(nproc) + 1) / 2)) 9*0c0cd931SGabriele Monaco lines_before=$(dmesg | wc -l) 10*0c0cd931SGabriele Monaco stress-ng --cpu-sched "$num" --timer "$num" -t 5 -q 11*0c0cd931SGabriele Monaco dmesg | tail -n $((lines_before + 1)) | grep -q "rv: monitor wwnr does not allow event" 12*0c0cd931SGabriele Monaco} 13*0c0cd931SGabriele Monaco 14*0c0cd931SGabriele Monacoecho 1 > monitors/wwnr/enable 15*0c0cd931SGabriele Monacoecho printk > monitors/wwnr/reactors 16*0c0cd931SGabriele Monaco 17*0c0cd931SGabriele Monacoload 18*0c0cd931SGabriele Monaco 19*0c0cd931SGabriele Monacoecho 0 > monitoring_on 20*0c0cd931SGabriele Monaco! load 21*0c0cd931SGabriele Monacoecho 1 > monitoring_on 22*0c0cd931SGabriele Monaco 23*0c0cd931SGabriele Monacoload 24*0c0cd931SGabriele Monaco 25*0c0cd931SGabriele Monacoecho 0 > reacting_on 26*0c0cd931SGabriele Monaco! load 27*0c0cd931SGabriele Monacoecho 1 > reacting_on 28*0c0cd931SGabriele Monaco 29*0c0cd931SGabriele Monacoecho nop > monitors/wwnr/reactors 30*0c0cd931SGabriele Monacoecho 0 > monitors/wwnr/enable 31