Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 21 additions & 13 deletions BM/pmu/apebs_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,10 @@ usage() {
__EOF
}

lbr_test() {
level=$1
perfdata="pebs.data"
logfile="temp.txt"
perf record -o "$perfdata" -b -e cycles:"$level" -a sleep 1 2> "$logfile"
sample_count=$(grep "sample" $logfile | awk '{print $10}' | tr -cd "0-9")
lbr_count=$(perf report -D -i $perfdata| grep -c "branch stack")
test_print_trc "sample_count = $sample_count; lbr_count = $lbr_count"
[[ $sample_count -eq 0 ]] && die "samples = 0!"
[[ $sample_count -eq $lbr_count ]] || die "samples does not match!"
clear_files() {
for i in "$@"; do
[[ -f $i ]] && test_print_trc "Remove file: $i" && rm "$i"
done;
}

lbr_test() {
Expand All @@ -54,11 +48,25 @@ xmm_test() {
level=$1
perfdata="pebs.data"
logfile="temp.txt"
perf record -o "$perfdata" -IXMM0 -e cycles:"$level" -a sleep 1 2> "$logfile"
simdfile="simd.txt"
local reg_type=0
perf record -I? 2>&1|tee $simdfile
grep 'XMM0-15' $simdfile > /dev/null && reg_type=0
grep 'XMM0 XMM1' $simdfile > /dev/null && reg_type=1
if [[ $reg_type -eq 0 ]]; then
xmm_reg="XMM"
mul=$((2 * 16))
elif [[ $reg_type -eq 1 ]]; then
xmm_reg="XMM0"
mul=2
fi

perf record -o $perfdata -I${xmm_reg} -e cycles:"$level" -a sleep 1 2>&1|tee $logfile
sample_count=$(grep "sample" $logfile | awk '{print $10}' | tr -cd "0-9")
count=$(perf report -D -i $perfdata| grep -c "XMM0")
count=$(perf report -D -i $perfdata| grep -c "${xmm_reg}")
clear_files $perfdata $logfile $simdfile
test_print_trc "before sample_count = $sample_count; count = $count"
sample_count=$((sample_count * 2))
sample_count=$((sample_count * mul))
test_print_trc "after sample_count = $sample_count; count = $count"
[[ $sample_count -eq 0 ]] && die "samples = 0!"
[[ $sample_count -eq $count ]] || die "samples does not match!"
Expand Down
12 changes: 10 additions & 2 deletions BM/pmu/pmu_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -215,8 +215,16 @@ arch_pebs_gp_reg_group_test() {

arch_pebs_xer_group_test() {
level="p"
# reg_group_test_more_option "OPMASK0" "opmask0" 1
reg_group_test_more_option "YMMH0" "YMMH0" 2
simdfile="simd.txt"
do_cmd "perf record -I? 2>&1|tee $simdfile"
if grep 'YMM0-15' $simdfile > /dev/null; then
# All 16 YMM registers are recorded, so 4*16=64
reg_group_test_more_option "YMM" "YMM" 64
clear_files $simdfile
else
clear_files $simdfile
die "SIMD sampling format is incorrect!"
fi
# reg_group_test_more_option "ZMMH0" "ZMMLH0" 4
}

Expand Down
Loading