-
Notifications
You must be signed in to change notification settings - Fork 90
/
Copy pathtrace-cmd-start-tracing.sh
executable file
·134 lines (109 loc) · 3.79 KB
/
trace-cmd-start-tracing.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/bin/bash
TRACECMD=$(which trace-cmd)
if [ -z "${TRACECMD}" ]; then
echo "ERROR: Could not locate trace-cmd binary"
exit -1
fi
if [ ! -u "${TRACECMD}" ]; then
echo "ERROR: ${TRACECMD} setuid bit not set. Run trace-cmd-setup.sh?"
exit -1
fi
if [ "${USE_I915_PERF}" ]; then
if [ -z "${I915_PERF_METRIC}" ]; then
echo "WARNING: Missing I915_PERF_METRIC value. Using default value 'RenderBasic'."
I915_PERF_METRIC="RenderBasic"
fi
if [ -z "${I915_PERF_ENGINE_CLASS}" ]; then
echo "WARNING: Missing I915_PERF_ENGINE_CLASS value. Using default value 0 (Render Class)."
I915_PERF_ENGINE_CLASS=0
fi
if [ -z "${I915_PERF_ENGINE_INSTANCE}" ]; then
echo "WARNING: Missing I915_PERF_ENGINE_INSTANCE value. Using default instance 0."
I915_PERF_ENGINE_INSTANCE=0
fi
fi
if [ "${USE_XE_PERF}" ]; then
if [ -z "${XE_PERF_METRIC}" ]; then
echo "WARNING: Missing XE_PERF_METRIC value. Using default value 'RenderBasic'."
XE_PERF_METRIC="RenderBasic"
fi
if [ -z "${XE_PERF_ENGINE_CLASS}" ]; then
echo "WARNING: Missing XE_PERF_ENGINE_CLASS value. Using default value 0 (Render Class)."
XE_PERF_ENGINE_CLASS=0
fi
if [ -z "${XE_PERF_ENGINE_INSTANCE}" ]; then
echo "WARNING: Missing XE_PERF_ENGINE_INSTANCE value. Using default instance 0."
XE_PERF_ENGINE_INSTANCE=0
fi
fi
EVENTS=
# https://github.com/mikesart/gpuvis/wiki/TechDocs-Linux-Scheduler
EVENTS+=" -e sched:sched_switch"
EVENTS+=" -e sched:sched_process_fork"
EVENTS+=" -e sched:sched_process_exec"
EVENTS+=" -e sched:sched_process_exit"
EVENTS+=" -e drm:drm_vblank_event"
EVENTS+=" -e drm:drm_vblank_event_queued"
EVENTS+=" -e drm:drm_vblank_event_delivered"
# https://github.com/mikesart/gpuvis/wiki/TechDocs-AMDGpu
EVENTS+=" -e amdgpu:amdgpu_vm_flush"
EVENTS+=" -e amdgpu:amdgpu_cs_ioctl"
EVENTS+=" -e amdgpu:amdgpu_sched_run_job"
EVENTS+=" -e *fence:*fence_signaled"
# https://github.com/mikesart/gpuvis/wiki/TechDocs-Intel
#
# NOTE: the i915_gem_request_submit, i915_gem_request_in, i915_gem_request_out
# tracepoints require the CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS Kconfig option to
# be enabled.
EVENTS+=" -e i915:i915_flip_request"
EVENTS+=" -e i915:i915_flip_complete"
EVENTS+=" -e i915:intel_gpu_freq_change"
EVENTS+=" -e i915:i915_gem_request_add"
EVENTS+=" -e i915:i915_gem_request_submit"
EVENTS+=" -e i915:i915_gem_request_in"
EVENTS+=" -e i915:i915_gem_request_out"
EVENTS+=" -e i915:i915_gem_request_queue"
EVENTS+=" -e i915:intel_engine_notify"
EVENTS+=" -e i915:i915_gem_request_wait_begin"
EVENTS+=" -e i915:i915_gem_request_wait_end"
EVENTS+=" -e i915:i915_request_add"
EVENTS+=" -e i915:i915_request_submit"
EVENTS+=" -e i915:i915_request_in"
EVENTS+=" -e i915:i915_request_out"
EVENTS+=" -e i915:i915_request_queue"
EVENTS+=" -e i915:i915_request_wait_begin"
EVENTS+=" -e i915:i915_request_wait_end"
EVENTS+=" -e i915:i915_request_retire"
EVENTS+=" -e i915:i915_request_execute"
EVENTS+=" -e i915:i915_pipe_update_vblank_evaded"
CMD="trace-cmd reset"
echo $CMD
$CMD
CLOCK=mono
echo
CMD="trace-cmd start -C ${CLOCK} -b 8000 -D -i ${EVENTS}"
echo $CMD
$CMD
if [ -e /tmp/.i915-perf-record ]; then
CMD="i915-perf-control -q"
echo $CMD
$CMD
fi
if [ -e /tmp/.xe-perf-record ]; then
CMD="xe-perf-control -q"
echo $CMD
$CMD
fi
if [ "${USE_I915_PERF}" ]; then
CMD="i915-perf-recorder -m ${I915_PERF_METRIC} -s 8000 -k ${CLOCK} -e ${I915_PERF_ENGINE_CLASS} -i ${I915_PERF_ENGINE_INSTANCE}"
echo $CMD
$CMD &
fi
if [ "${USE_XE_PERF}" ]; then
CMD="xe-perf-recorder -m ${XE_PERF_METRIC} -s 8000 -k ${CLOCK} -e ${XE_PERF_ENGINE_CLASS} -i ${XE_PERF_ENGINE_INSTANCE}"
echo $CMD
$CMD &
fi
echo
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
${SCRIPT_DIR}/trace-cmd-status.sh