mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
perf tests: Implement Zstd comp/decomp integration test
Introduce a basic integration test for Zstd based record compression/decompression using 'perf record' and 'perf report'. Committer notes: Reduce a bit the freq (from 25 kHz to 5 kHz) and the number of /dev/null records read (from 1000 to 500), reducing the time it takes to something more in line with the time existing 'perf test' entries take to run. With that in place: $ time perf test zstd 68: Zstd perf.data compression/decompression : Ok real 0m10.376s user 0m0.105s sys 0m0.440s $ grep "model name" /proc/cpuinfo | head -1 model name : Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz $ Signed-off-by: Alexey Budankov <[email protected]> Reviewed-by: Jiri Olsa <[email protected]> Tested-by: Arnaldo Carvalho de Melo <[email protected]> Cc: Alexander Shishkin <[email protected]> Cc: Andi Kleen <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Peter Zijlstra <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
This commit is contained in:
parent
371a3378d8
commit
bdc35cbc35
1 changed files with 35 additions and 0 deletions
35
tools/perf/tests/shell/record+zstd_comp_decomp.sh
Executable file
35
tools/perf/tests/shell/record+zstd_comp_decomp.sh
Executable file
|
|
@ -0,0 +1,35 @@
|
|||
#!/bin/sh
|
||||
# Zstd perf.data compression/decompression
|
||||
|
||||
trace_file=$(mktemp /tmp/perf.data.XXX)
|
||||
perf_tool=perf
|
||||
output=/dev/null
|
||||
|
||||
skip_if_no_z_record() {
|
||||
$perf_tool record -h 2>&1 | grep '\-z, \-\-compression\-level'
|
||||
}
|
||||
|
||||
collect_z_record() {
|
||||
echo "Collecting compressed record file:"
|
||||
$perf_tool record -o $trace_file -g -z -F 5000 -- \
|
||||
dd count=500 if=/dev/random of=/dev/null > $output 2>&1
|
||||
}
|
||||
|
||||
check_compressed_stats() {
|
||||
echo "Checking compressed events stats:"
|
||||
$perf_tool report -i $trace_file --header --stats | \
|
||||
grep -E "(# compressed : Zstd,)|(COMPRESSED events:)" > $output 2>&1
|
||||
}
|
||||
|
||||
check_compressed_output() {
|
||||
$perf_tool inject -i $trace_file -o $trace_file.decomp &&
|
||||
$perf_tool report -i $trace_file --stdio | head -n -3 > $trace_file.comp.output &&
|
||||
$perf_tool report -i $trace_file.decomp --stdio | head -n -3 > $trace_file.decomp.output &&
|
||||
diff $trace_file.comp.output $trace_file.decomp.output > $output 2>&1
|
||||
}
|
||||
|
||||
skip_if_no_z_record || exit 2
|
||||
collect_z_record && check_compressed_stats && check_compressed_output
|
||||
err=$?
|
||||
rm -f $trace_file*
|
||||
exit $err
|
||||
Loading…
Reference in a new issue