Lines Matching full:lock

2 # kernel lock contention analysis test
12 # Workload to generate lock contention.
13 # Using 1 group (-g 1) keeps runtime low while generating sufficient lock events.
14 # We include -p (pipes) because socketpairs don't generate enough lock events on s390.
41 if ! perf list tracepoint | grep -q lock:contention_begin; then
42 echo "[Skip] No lock contention tracepoints"
49 echo "[Skip] Low number of CPUs (`nproc`), lock event cannot be triggered certainly"
57 echo "Testing perf lock record and perf lock contention"
58 perf lock record -o ${perfdata} -- ${msg_workload} > /dev/null 2>&1
60 perf lock contention -i ${perfdata} -E 1 -q 2> ${result}
70 echo "Testing perf lock contention --use-bpf"
72 if ! perf lock con -b true > /dev/null 2>&1 ; then
77 # the perf lock contention output goes to the stderr
78 perf lock con -a -b -E 1 -q -- ${msg_workload} > /dev/null 2> ${result}
88 echo "Testing perf lock record and perf lock contention at the same time"
89 perf lock record -o- -- ${msg_workload} 2> ${errout} | \
90 perf lock contention -i- -E 1 -q 2> ${result}
102 echo "Testing perf lock contention --threads"
103 perf lock contention -i ${perfdata} -t -E 1 -q 2> ${result}
110 if ! perf lock con -b true > /dev/null 2>&1 ; then
114 # the perf lock contention output goes to the stderr
115 perf lock con -a -b -t -E 1 -q -- ${msg_workload} > /dev/null 2> ${result}
125 echo "Testing perf lock contention --lock-addr"
126 perf lock contention -i ${perfdata} -l -E 1 -q 2> ${result}
133 if ! perf lock con -b true > /dev/null 2>&1 ; then
137 # the perf lock contention output goes to the stderr
138 perf lock con -a -b -l -E 1 -q -- ${msg_workload} > /dev/null 2> ${result}
148 echo "Testing perf lock contention --lock-cgroup"
150 if ! perf lock con -b true > /dev/null 2>&1 ; then
155 # the perf lock contention output goes to the stderr
156 perf lock con -a -b --lock-cgroup -E 1 -q -- ${msg_workload} > /dev/null 2> ${result}
166 echo "Testing perf lock contention --type-filter (w/ spinlock)"
167 perf lock contention -i ${perfdata} -Y spinlock -q 2> ${result}
174 if ! perf lock con -b true > /dev/null 2>&1 ; then
178 perf lock con -a -b -Y spinlock -q -- ${msg_workload} > /dev/null 2> ${result}
188 echo "Testing perf lock contention --lock-filter (w/ tasklist_lock)"
189 perf lock contention -i ${perfdata} -l -q 2> ${result}
195 perf lock contention -i ${perfdata} -L tasklist_lock -q 2> ${result}
206 if ! perf lock con -b true > /dev/null 2>&1 ; then
210 perf lock con -a -b -L tasklist_lock -q -- ${msg_workload} > /dev/null 2> ${result}
217 perf lock con -b -L mmap_lock -q -- perf bench mem mmap -t 2 -l 10 > /dev/null 2> ${result}
231 echo "Testing perf lock contention --callstack-filter (w/ unix_stream)"
232 perf lock contention -i ${perfdata} -v -q 2> ${result}
238 perf lock contention -i ${perfdata} -E 1 -S unix_stream -q 2> ${result}
240 echo "[Fail] Recorded result should have a lock from unix_stream:" "$(cat "${result}")"
245 if ! perf lock con -b true > /dev/null 2>&1 ; then
249 perf lock con -a -b -S unix_stream -E 1 -q -- ${msg_workload} > /dev/null 2> ${result}
251 echo "[Fail] BPF result should have a lock from unix_stream:" "$(cat "${result}")"
259 echo "Testing perf lock contention --callstack-filter with task aggregation"
260 perf lock contention -i ${perfdata} -v -q 2> ${result}
266 perf lock contention -i ${perfdata} -t -E 1 -S unix_stream -q 2> ${result}
273 if ! perf lock con -b true > /dev/null 2>&1 ; then
277 perf lock con -a -b -t -S unix_stream -E 1 -q -- ${msg_workload} > /dev/null 2> ${result}
286 echo "Testing perf lock contention --cgroup-filter"
288 if ! perf lock con -b true > /dev/null 2>&1 ; then
293 perf lock con -a -b --lock-cgroup -E 1 -F wait_total -q \
302 perf lock con -a -b --lock-cgroup -E 1 -G "${cgroup}" -q \
314 echo "Testing perf lock contention CSV output"
315 perf lock contention -i ${perfdata} -E 1 -x , --output ${result}
332 if ! perf lock con -b true > /dev/null 2>&1 ; then
337 # the perf lock contention output goes to the stderr
338 perf lock con -a -b -E 1 -x , --output ${result} -- ${msg_workload} > /dev/null 2>&1