aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2008-09-03 15:14:33 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2008-09-03 15:14:33 -0400
commitb5e16fb14006c3813bd785c4c289dcc0f7e37b59 (patch)
tree2b51711bd2c7df2ec26be81e0b830329c9fc518d
parent460d19baddd2ac077d2c06f090ac1db09e1730e6 (diff)
add tool for measuring cycles/sec
-rw-r--r--Makefile5
-rw-r--r--bin/cycles.c25
2 files changed, 29 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index ace3c0c..f558b9c 100644
--- a/Makefile
+++ b/Makefile
@@ -19,7 +19,7 @@ LIBS= ./liblitmus.a
19LIB_OBJ= litmus.o syscalls.o sched_trace.o task.o kernel_iface.o 19LIB_OBJ= litmus.o syscalls.o sched_trace.o task.o kernel_iface.o
20 20
21TARGETS = run rt_launch liblitmus.a \ 21TARGETS = run rt_launch liblitmus.a \
22 wait_test np_test stdump mode_test base_task base_mt_task release_ts 22 wait_test np_test stdump mode_test base_task base_mt_task release_ts cycles
23 23
24vpath %.h include/ 24vpath %.h include/
25vpath %.c src/ bin/ 25vpath %.c src/ bin/
@@ -55,6 +55,9 @@ release_ts: liblitmus.a litmus.h release_ts.o
55stdump: liblitmus.a litmus.h sched_trace.h stdump.o 55stdump: liblitmus.a litmus.h sched_trace.h stdump.o
56 ${CC} ${CFLAGS} -o stdump stdump.o ${LIBS} 56 ${CC} ${CFLAGS} -o stdump stdump.o ${LIBS}
57 57
58cycles: cycles.o
59 ${CC} ${CFLAGS} -o cycles cycles.o
60
58liblitmus.a: ${LIB_OBJ} litmus.h 61liblitmus.a: ${LIB_OBJ} litmus.h
59 ${AR} rcs liblitmus.a ${LIB_OBJ} 62 ${AR} rcs liblitmus.a ${LIB_OBJ}
60 63
diff --git a/bin/cycles.c b/bin/cycles.c
new file mode 100644
index 0000000..4e5a078
--- /dev/null
+++ b/bin/cycles.c
@@ -0,0 +1,25 @@
1#include <stdio.h>
2#include <stdlib.h>
3#include <unistd.h>
4
5#include "cycles.h"
6
7int main(int argc, char** argv)
8{
9 cycles_t t1, t2;
10 int secs = 1;
11
12 if (argc > 1) {
13 secs = atoi(argv[1]);
14 if (secs <= 0)
15 secs = 1;
16 }
17 while (1) {
18 t1 = get_cycles();
19 sleep(secs);
20 t2 = get_cycles();
21 t2 -= t1;
22 printf("%.2f/sec\n", t2 / (double) secs);
23 }
24 return 0;
25}