10a1b0325SVincent Donnefort# SPDX-License-Identifier: GPL-2.0 20a1b0325SVincent Donnefort 30a1b0325SVincent Donnefortsetup_remote() 40a1b0325SVincent Donnefort{ 50a1b0325SVincent Donnefort local name=$1 60a1b0325SVincent Donnefort 70a1b0325SVincent Donnefort [ -e $TRACING_DIR/remotes/$name/write_event ] || exit_unresolved 80a1b0325SVincent Donnefort 90a1b0325SVincent Donnefort cd remotes/$name/ 100a1b0325SVincent Donnefort echo 0 > tracing_on 110a1b0325SVincent Donnefort clear_trace 120a1b0325SVincent Donnefort echo 7 > buffer_size_kb 130a1b0325SVincent Donnefort echo 0 > events/enable 140a1b0325SVincent Donnefort echo 1 > events/$name/selftest/enable 150a1b0325SVincent Donnefort echo 1 > tracing_on 160a1b0325SVincent Donnefort} 170a1b0325SVincent Donnefort 180a1b0325SVincent Donnefortsetup_remote_test() 190a1b0325SVincent Donnefort{ 200a1b0325SVincent Donnefort [ -d $TRACING_DIR/remotes/test/ ] || modprobe remote_test || exit_unresolved 210a1b0325SVincent Donnefort 220a1b0325SVincent Donnefort setup_remote "test" 230a1b0325SVincent Donnefort} 240a1b0325SVincent Donnefort 250a1b0325SVincent Donnefortassert_loaded() 260a1b0325SVincent Donnefort{ 27*ec07906bSVincent Donnefort grep -q "(loaded)" buffer_size_kb || return 1 280a1b0325SVincent Donnefort} 290a1b0325SVincent Donnefort 300a1b0325SVincent Donnefortassert_unloaded() 310a1b0325SVincent Donnefort{ 32*ec07906bSVincent Donnefort grep -q "(unloaded)" buffer_size_kb || return 1 33*ec07906bSVincent Donnefort} 34*ec07906bSVincent Donnefort 35*ec07906bSVincent Donnefortreload_remote() 36*ec07906bSVincent Donnefort{ 37*ec07906bSVincent Donnefort echo 0 > tracing_on 38*ec07906bSVincent Donnefort clear_trace 39*ec07906bSVincent Donnefort assert_unloaded 40*ec07906bSVincent Donnefort echo 1 > tracing_on 41*ec07906bSVincent Donnefort assert_loaded 420a1b0325SVincent Donnefort} 430a1b0325SVincent Donnefort 440a1b0325SVincent Donnefortdump_trace_pipe() 450a1b0325SVincent Donnefort{ 460a1b0325SVincent Donnefort output=$(mktemp $TMPDIR/remote_test.XXXXXX) 470a1b0325SVincent Donnefort cat trace_pipe > $output & 480a1b0325SVincent Donnefort pid=$! 490a1b0325SVincent Donnefort sleep 1 500a1b0325SVincent Donnefort kill -1 $pid 510a1b0325SVincent Donnefort 520a1b0325SVincent Donnefort echo $output 530a1b0325SVincent Donnefort} 540a1b0325SVincent Donnefort 550a1b0325SVincent Donnefortcheck_trace() 560a1b0325SVincent Donnefort{ 570a1b0325SVincent Donnefort start_id="$1" 580a1b0325SVincent Donnefort end_id="$2" 590a1b0325SVincent Donnefort file="$3" 600a1b0325SVincent Donnefort 610a1b0325SVincent Donnefort # Ensure the file is not empty 620a1b0325SVincent Donnefort test -n "$(head $file)" 630a1b0325SVincent Donnefort 640a1b0325SVincent Donnefort prev_ts=0 650a1b0325SVincent Donnefort id=0 660a1b0325SVincent Donnefort 670a1b0325SVincent Donnefort # Only keep <timestamp> <id> 680a1b0325SVincent Donnefort tmp=$(mktemp $TMPDIR/remote_test.XXXXXX) 690a1b0325SVincent Donnefort sed -e 's/\[[0-9]*\]\s*\([0-9]*.[0-9]*\): [a-z]* id=\([0-9]*\)/\1 \2/' $file > $tmp 700a1b0325SVincent Donnefort 710a1b0325SVincent Donnefort while IFS= read -r line; do 720a1b0325SVincent Donnefort ts=$(echo $line | cut -d ' ' -f 1) 730a1b0325SVincent Donnefort id=$(echo $line | cut -d ' ' -f 2) 740a1b0325SVincent Donnefort 750a1b0325SVincent Donnefort test $(echo "$ts>$prev_ts" | bc) -eq 1 760a1b0325SVincent Donnefort test $id -eq $start_id 770a1b0325SVincent Donnefort 780a1b0325SVincent Donnefort prev_ts=$ts 790a1b0325SVincent Donnefort start_id=$((start_id + 1)) 800a1b0325SVincent Donnefort done < $tmp 810a1b0325SVincent Donnefort 820a1b0325SVincent Donnefort test $id -eq $end_id 830a1b0325SVincent Donnefort rm $tmp 840a1b0325SVincent Donnefort} 850a1b0325SVincent Donnefort 860a1b0325SVincent Donnefortget_cpu_ids() 870a1b0325SVincent Donnefort{ 880a1b0325SVincent Donnefort sed -n 's/^processor\s*:\s*\([0-9]\+\).*/\1/p' /proc/cpuinfo 890a1b0325SVincent Donnefort} 900a1b0325SVincent Donnefort 91*ec07906bSVincent Donnefortget_page_size() 92*ec07906bSVincent Donnefort{ 930a1b0325SVincent Donnefort sed -ne 's/^.*data.*size:\([0-9][0-9]*\).*/\1/p' events/header_page 940a1b0325SVincent Donnefort} 950a1b0325SVincent Donnefort 96*ec07906bSVincent Donnefortget_selftest_event_size() 97*ec07906bSVincent Donnefort{ 980a1b0325SVincent Donnefort sed -ne 's/^.*field:.*;.*size:\([0-9][0-9]*\);.*/\1/p' events/*/selftest/format | awk '{s+=$1} END {print s}' 990a1b0325SVincent Donnefort} 100