diff options
| author | Adrian Hunter <adrian.hunter@intel.com> | 2022-09-14 11:01:49 +0300 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2022-10-04 08:55:23 -0300 |
| commit | 5ebcdf07f7e4cdfdcfb3589f6bd3f81c3c061164 (patch) | |
| tree | 722446a5d15e4b792626d348bcc80e2ae8c1e652 /tools/perf/tests/shell/test_intel_pt.sh | |
| parent | fea753f8e3c88c056806792c4d9de719939e0ef0 (diff) | |
| download | linux-5ebcdf07f7e4cdfdcfb3589f6bd3f81c3c061164.tar.gz linux-5ebcdf07f7e4cdfdcfb3589f6bd3f81c3c061164.zip | |
perf test: test_intel_pt.sh: Move helper functions for waiting
Move helper functions for waiting to a separate file so they can be
shared.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20220914080150.5888-2-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/tests/shell/test_intel_pt.sh')
| -rwxr-xr-x | tools/perf/tests/shell/test_intel_pt.sh | 68 |
1 files changed, 4 insertions, 64 deletions
diff --git a/tools/perf/tests/shell/test_intel_pt.sh b/tools/perf/tests/shell/test_intel_pt.sh index 051d088c1b74..efaad9566c34 100755 --- a/tools/perf/tests/shell/test_intel_pt.sh +++ b/tools/perf/tests/shell/test_intel_pt.sh @@ -4,11 +4,12 @@ set -e -tenths=date\ +%s%1N - # Skip if no Intel PT perf list | grep -q 'intel_pt//' || exit 2 +shelldir=$(dirname "$0") +. "${shelldir}"/lib/waiting.sh + skip_cnt=0 ok_cnt=0 err_cnt=0 @@ -112,67 +113,6 @@ can_kernel() return 0 } -wait_for_threads() -{ - start_time=$($tenths) - while [ -e "/proc/$1/task" ] ; do - th_cnt=$(find "/proc/$1/task" -mindepth 1 -maxdepth 1 -printf x | wc -c) - if [ "${th_cnt}" -ge "$2" ] ; then - return 0 - fi - # Wait at most 5 seconds - if [ $(($($tenths) - start_time)) -ge 50 ] ; then - echo "PID $1 does not have $2 threads" - return 1 - fi - done - return 1 -} - -wait_for_perf_to_start() -{ - echo "Waiting for \"perf record has started\" message" - start_time=$($tenths) - while [ -e "/proc/$1" ] ; do - if grep -q "perf record has started" "${errfile}" ; then - echo OK - break - fi - # Wait at most 5 seconds - if [ $(($($tenths) - start_time)) -ge 50 ] ; then - echo "perf recording did not start" - return 1 - fi - done - return 0 -} - -wait_for_process_to_exit() -{ - start_time=$($tenths) - while [ -e "/proc/$1" ] ; do - # Wait at most 5 seconds - if [ $(($($tenths) - start_time)) -ge 50 ] ; then - echo "PID $1 did not exit as expected" - return 1 - fi - done - return 0 -} - -is_running() -{ - start_time=$($tenths) - while [ -e "/proc/$1" ] ; do - # Check for at least 0.3s - if [ $(($($tenths) - start_time)) -gt 3 ] ; then - return 0 - fi - done - echo "PID $1 exited prematurely" - return 1 -} - test_per_thread() { k="$1" @@ -298,7 +238,7 @@ test_per_thread() perf record -B -N --no-bpf-event -o "${perfdatafile}" -e intel_pt//u"${k}" -vvv --per-thread -p "${w1},${w2}" 2>"${errfile}" >"${outfile}" & ppid=$! echo "perf PID is $ppid" - wait_for_perf_to_start ${ppid} || return 1 + wait_for_perf_to_start ${ppid} "${errfile}" || return 1 kill ${w1} wait_for_process_to_exit ${w1} || return 1 |
