test: perf_event_open: Fix test program

Change-Id: Ie5af8fb3ab7452078f2c35ec14c6369d86eedec3
This commit is contained in:
Masamichi Takagi
2019-03-29 05:34:44 +00:00
committed by Dominique Martinet
parent dfb3bef96d
commit 2cee82673b
3 changed files with 17 additions and 15 deletions

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
MCEXEC="mcexec" . ../common.sh
PERF_HW_ID_MAX=9 PERF_HW_ID_MAX=9
PERF_COUNT_HW_CACHE_MAX=6 PERF_COUNT_HW_CACHE_MAX=6
@ -10,56 +10,56 @@ PERF_COUNT_HW_CACHE_RESULT_MAX=1
PERF_TYPE_HARDWARE=0 PERF_TYPE_HARDWARE=0
PERF_TYPE_HW_CACHE=3 PERF_TYPE_HW_CACHE=3
echo "PERF_TYPE_HARDWARE all spase】, " echo "[PERF_TYPE_HARDWARE all space]"
for id in `seq 0 ${PERF_HW_ID_MAX}` for id in `seq 0 ${PERF_HW_ID_MAX}`
do do
${MCEXEC} ./perf_test 0 1 ${PERF_TYPE_HARDWARE} ${id} ${MCK_DIR}/bin/mcexec ./perf_test 0 1 ${PERF_TYPE_HARDWARE} ${id}
done done
echo "HW_CACHE no exclude】, " echo "[HW_CACHE no exclude]"
for i in `seq 0 ${PERF_COUNT_HW_CACHE_MAX}` for i in `seq 0 ${PERF_COUNT_HW_CACHE_MAX}`
do do
for j in `seq 0 ${PERF_COUNT_HW_CACHE_OP_MAX}` for j in `seq 0 ${PERF_COUNT_HW_CACHE_OP_MAX}`
do do
for k in `seq 0 ${PERF_COUNT_HW_CACHE_RESULT_MAX}` for k in `seq 0 ${PERF_COUNT_HW_CACHE_RESULT_MAX}`
do do
${MCEXEC} ./perf_test 0 1 ${PERF_TYPE_HW_CACHE} `expr ${k} \* 65536 + ${j} \* 256 + ${i}` ${MCK_DIR}/bin/mcexec ./perf_test 0 1 ${PERF_TYPE_HW_CACHE} `expr ${k} \* 65536 + ${j} \* 256 + ${i}`
done done
done done
done done
echo "HARDWARE exclude user space】, " echo "[HARDWARE exclude user space]"
for id in `seq 0 ${PERF_HW_ID_MAX}` for id in `seq 0 ${PERF_HW_ID_MAX}`
do do
${MCEXEC} ./perf_test 1 1 ${PERF_TYPE_HARDWARE} ${id} ${MCK_DIR}/bin/mcexec ./perf_test 1 1 ${PERF_TYPE_HARDWARE} ${id}
done done
echo "HW_CACHE exclude user space】, " echo "[HW_CACHE exclude user space]"
for i in `seq 0 ${PERF_COUNT_HW_CACHE_MAX}` for i in `seq 0 ${PERF_COUNT_HW_CACHE_MAX}`
do do
for j in `seq 0 ${PERF_COUNT_HW_CACHE_OP_MAX}` for j in `seq 0 ${PERF_COUNT_HW_CACHE_OP_MAX}`
do do
for k in `seq 0 ${PERF_COUNT_HW_CACHE_RESULT_MAX}` for k in `seq 0 ${PERF_COUNT_HW_CACHE_RESULT_MAX}`
do do
${MCEXEC} ./perf_test 1 1 ${PERF_TYPE_HW_CACHE} `expr ${k} \* 65536 + ${j} \* 256 + ${i}` ${MCK_DIR}/bin/mcexec ./perf_test 1 1 ${PERF_TYPE_HW_CACHE} `expr ${k} \* 65536 + ${j} \* 256 + ${i}`
done done
done done
done done
echo "HARDWARE exclude kernel space】, " echo "[HARDWARE exclude kernel space]"
for id in `seq 0 ${PERF_HW_ID_MAX}` for id in `seq 0 ${PERF_HW_ID_MAX}`
do do
${MCEXEC} ./perf_test 2 1 ${PERF_TYPE_HARDWARE} ${id} ${MCK_DIR}/bin/mcexec ./perf_test 2 1 ${PERF_TYPE_HARDWARE} ${id}
done done
echo "HW_CACHE exclude kernel space】, " echo "[HW_CACHE exclude kernel space]"
for i in `seq 0 ${PERF_COUNT_HW_CACHE_MAX}` for i in `seq 0 ${PERF_COUNT_HW_CACHE_MAX}`
do do
for j in `seq 0 ${PERF_COUNT_HW_CACHE_OP_MAX}` for j in `seq 0 ${PERF_COUNT_HW_CACHE_OP_MAX}`
do do
for k in `seq 0 ${PERF_COUNT_HW_CACHE_RESULT_MAX}` for k in `seq 0 ${PERF_COUNT_HW_CACHE_RESULT_MAX}`
do do
${MCEXEC} ./perf_test 2 1 ${PERF_TYPE_HW_CACHE} `expr ${k} \* 65536 + ${j} \* 256 + ${i}` ${MCK_DIR}/bin/mcexec ./perf_test 2 1 ${PERF_TYPE_HW_CACHE} `expr ${k} \* 65536 + ${j} \* 256 + ${i}`
done done
done done
done done

View File

@ -68,10 +68,11 @@ main(int argc, char** argv)
/* print result */ /* print result */
for (i = 0; i < cntr_num; i++) { for (i = 0; i < cntr_num; i++) {
if (types[i] == PERF_TYPE_HARDWARE) { if (types[i] == PERF_TYPE_HARDWARE) {
printf("%s,%ld\n", hw_event_names[configs[i]], counts[i]); printf("%s: %ld\n",
hw_event_names[configs[i]], counts[i]);
} }
else if (types[i] == PERF_TYPE_HW_CACHE) { else if (types[i] == PERF_TYPE_HW_CACHE) {
printf("%s_%s_%s,%ld\n", printf("%s_%s_%s: %ld\n",
id_names[(configs[i] >> 0) & 0xff], id_names[(configs[i] >> 0) & 0xff],
op_id_names[(configs[i] >> 8) & 0xff], op_id_names[(configs[i] >> 8) & 0xff],
result_names[(configs[i] >> 16) & 0xff], result_names[(configs[i] >> 16) & 0xff],

View File

@ -4,6 +4,7 @@
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <linux/perf_event.h> #include <linux/perf_event.h>
#include <asm/unistd.h> #include <asm/unistd.h>
#include <unistd.h>
extern long perf_event_open(struct perf_event_attr *hw_event, pid_t pid, extern long perf_event_open(struct perf_event_attr *hw_event, pid_t pid,
int cpu, int group_fd, unsigned long flags); int cpu, int group_fd, unsigned long flags);