File Index
Files and directories
Sign in
FILE

sched.sh

File preview with syntax highlighting.

linux-6.19.14/tools/perf/tests/shell/sched.sh BASH
  1#!/bin/bash
  2# perf sched tests
  3# SPDX-License-Identifier: GPL-2.0
  4
  5set -e
  6
  7if [ "$(id -u)" != 0 ]; then
  8  echo "[Skip] No root permission"
  9  exit 2
 10fi
 11
 12err=0
 13perfdata=$(mktemp /tmp/__perf_test_sched.perf.data.XXXXX)
 14PID1=0
 15PID2=0
 16
 17cleanup() {
 18  rm -f "${perfdata}"
 19  rm -f "${perfdata}".old
 20
 21  trap - EXIT TERM INT
 22}
 23
 24trap_cleanup() {
 25  echo "Unexpected signal in ${FUNCNAME[1]}"
 26  cleanup
 27  exit 1
 28}
 29trap trap_cleanup EXIT TERM INT
 30
 31start_noploops() {
 32  # Start two noploop workloads on CPU0 to trigger scheduling.
 33  perf test -w noploop 10 &
 34  PID1=$!
 35  taskset -pc 0 $PID1
 36  perf test -w noploop 10 &
 37  PID2=$!
 38  taskset -pc 0 $PID2
 39
 40  if ! grep -q 'Cpus_allowed_list:\s*0$' "/proc/$PID1/status"
 41  then
 42    echo "Sched [Error taskset did not work for the 1st noploop ($PID1)]"
 43    grep Cpus_allowed /proc/$PID1/status
 44    err=1
 45  fi
 46
 47  if ! grep -q 'Cpus_allowed_list:\s*0$' "/proc/$PID2/status"
 48  then
 49    echo "Sched [Error taskset did not work for the 2nd noploop ($PID2)]"
 50    grep Cpus_allowed /proc/$PID2/status
 51    err=1
 52  fi
 53}
 54
 55cleanup_noploops() {
 56  kill "$PID1" "$PID2" || true
 57}
 58
 59test_sched_record() {
 60  echo "Sched record"
 61
 62  start_noploops
 63
 64  perf sched record --no-inherit -o "${perfdata}" sleep 1
 65
 66  cleanup_noploops
 67}
 68
 69test_sched_latency() {
 70  echo "Sched latency"
 71
 72  if ! perf sched latency -i "${perfdata}" | grep -q perf-noploop
 73  then
 74    echo "Sched latency [Failed missing output]"
 75    err=1
 76  fi
 77}
 78
 79test_sched_script() {
 80  echo "Sched script"
 81
 82  if ! perf sched script -i "${perfdata}" | grep -q perf-noploop
 83  then
 84    echo "Sched script [Failed missing output]"
 85    err=1
 86  fi
 87}
 88
 89test_sched_map() {
 90  echo "Sched map"
 91
 92  if ! perf sched map -i "${perfdata}" | grep -q perf-noploop
 93  then
 94    echo "Sched map [Failed missing output]"
 95    err=1
 96  fi
 97}
 98
 99test_sched_timehist() {
100  echo "Sched timehist"
101
102  if ! perf sched timehist -i "${perfdata}" | grep -q perf-noploop
103  then
104    echo "Sched timehist [Failed missing output]"
105    err=1
106  fi
107}
108
109test_sched_record
110test_sched_latency
111test_sched_script
112test_sched_map
113test_sched_timehist
114
115cleanup
116exit $err
~/ Read-only file preview.