# SPDX-License-Identifier: GPL-2.0 setup_remote() { local name=$1 [ -e $TRACING_DIR/remotes/$name/write_event ] || exit_unresolved cd remotes/$name/ echo 0 > tracing_on clear_trace echo 7 > buffer_size_kb echo 0 > events/enable echo 1 > events/$name/selftest/enable echo 1 > tracing_on } setup_remote_test() { [ -d $TRACING_DIR/remotes/test/ ] || modprobe remote_test || exit_unresolved setup_remote "test" } assert_loaded() { grep -q "(loaded)" buffer_size_kb || return 1 } assert_unloaded() { grep -q "(unloaded)" buffer_size_kb || return 1 } reload_remote() { echo 0 > tracing_on clear_trace assert_unloaded echo 1 > tracing_on assert_loaded } dump_trace_pipe() { output=$(mktemp $TMPDIR/remote_test.XXXXXX) cat trace_pipe > $output & pid=$! sleep 1 kill -1 $pid echo $output } check_trace() { start_id="$1" end_id="$2" file="$3" # Ensure the file is not empty test -n "$(head $file)" prev_ts=0 id=0 # Only keep tmp=$(mktemp $TMPDIR/remote_test.XXXXXX) sed -e 's/\[[0-9]*\]\s*\([0-9]*.[0-9]*\): [a-z]* id=\([0-9]*\)/\1 \2/' $file > $tmp while IFS= read -r line; do ts=$(echo $line | cut -d ' ' -f 1) id=$(echo $line | cut -d ' ' -f 2) test $(echo "$ts>$prev_ts" | bc) -eq 1 test $id -eq $start_id prev_ts=$ts start_id=$((start_id + 1)) done < $tmp test $id -eq $end_id rm $tmp } get_cpu_ids() { sed -n 's/^processor\s*:\s*\([0-9]\+\).*/\1/p' /proc/cpuinfo } get_page_size() { sed -ne 's/^.*data.*size:\([0-9][0-9]*\).*/\1/p' events/header_page } get_selftest_event_size() { sed -ne 's/^.*field:.*;.*size:\([0-9][0-9]*\);.*/\1/p' events/*/selftest/format | awk '{s+=$1} END {print s}' }