brintos

brintos / linux-shallow public Read only

0
0
Text · 1.0 KiB · 1a7e6a8 Raw
51 lines · bash
1#!/bin/sh2# Check Arm SPE doesn't hang when there are forks3 4# SPDX-License-Identifier: GPL-2.05# German Gomez <german.gomez@arm.com>, 20226 7skip_if_no_arm_spe_event() {8	perf list | grep -E -q 'arm_spe_[0-9]+//' && return 09	return 210}11 12skip_if_no_arm_spe_event || exit 213 14TEST_PROGRAM="perf test -w sqrtloop 10"15PERF_DATA=$(mktemp /tmp/__perf_test.perf.data.XXXXX)16PERF_RECORD_LOG=$(mktemp /tmp/__perf_test.log.XXXXX)17 18cleanup_files()19{20	echo "Cleaning up files..."21	rm -f ${PERF_RECORD_LOG}22	rm -f ${PERF_DATA}23}24 25trap cleanup_files EXIT TERM INT26 27echo "Recording workload..."28perf record -o ${PERF_DATA} -e arm_spe/period=65536/ -vvv -- $TEST_PROGRAM > ${PERF_RECORD_LOG} 2>&1 &29PERFPID=$!30 31# Check if perf hangs by checking the perf-record logs.32sleep 133log0=$(wc -l $PERF_RECORD_LOG)34echo Log lines = $log035sleep 136log1=$(wc -l $PERF_RECORD_LOG)37echo Log lines after 1 second = $log138 39kill $PERFPID40wait $PERFPID41 42if [ "$log0" = "$log1" ];43then44        echo "SPE hang test: FAIL"45        exit 146else47        echo "SPE hang test: PASS"48fi49 50exit 051