diff options
author | Edward Tomasz Napierala <trasz@FreeBSD.org> | 2018-07-04 13:26:47 +0000 |
---|---|---|
committer | Edward Tomasz Napierala <trasz@FreeBSD.org> | 2018-07-04 13:26:47 +0000 |
commit | 00b95f634a5bc6f7f6ca2e83bc080a83b1fbd86c (patch) | |
tree | 589938f0d3eef7e4a1fd7b498e985f2b024c060a /tools/tools | |
parent | d6eff0832c47282f3a7617a2a5435fde5018db6b (diff) | |
download | src-00b95f634a5bc6f7f6ca2e83bc080a83b1fbd86c.tar.gz src-00b95f634a5bc6f7f6ca2e83bc080a83b1fbd86c.zip |
Use a macro for iteration.
Obtained from: CheriBSD
MFC after: 2 weeks
Sponsored by: DARPA, AFRL
Notes
Notes:
svn path=/head/; revision=335936
Diffstat (limited to 'tools/tools')
-rw-r--r-- | tools/tools/syscall_timing/syscall_timing.c | 110 |
1 files changed, 29 insertions, 81 deletions
diff --git a/tools/tools/syscall_timing/syscall_timing.c b/tools/tools/syscall_timing/syscall_timing.c index 08e71c4ce146..bd602da8e892 100644 --- a/tools/tools/syscall_timing/syscall_timing.c +++ b/tools/tools/syscall_timing/syscall_timing.c @@ -63,6 +63,8 @@ static volatile int alarm_fired; } \ } while (0) +#define BENCHMARK_FOREACH(I, NUM) for (I = 0; I < NUM && alarm_fired == 0; I++) + static void alarm_handler(int signum) { @@ -103,9 +105,7 @@ test_getuid(uintmax_t num, uintmax_t int_arg, const char *path) * call is MPSAFE. */ benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { getuid(); } benchmark_stop(); @@ -122,9 +122,7 @@ test_getppid(uintmax_t num, uintmax_t int_arg, const char *path) * lock. */ benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { getppid(); } benchmark_stop(); @@ -138,9 +136,7 @@ test_getresuid(uintmax_t num, uintmax_t int_arg, const char *path) uintmax_t i; benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { (void)getresuid(&ruid, &euid, &suid); } benchmark_stop(); @@ -154,9 +150,7 @@ test_clock_gettime(uintmax_t num, uintmax_t int_arg, const char *path) uintmax_t i; benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { (void)clock_gettime(CLOCK_REALTIME, &ts); } benchmark_stop(); @@ -170,9 +164,7 @@ test_gettimeofday(uintmax_t num, uintmax_t int_arg, const char *path) uintmax_t i; benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { (void)gettimeofday(&tv, NULL); } benchmark_stop(); @@ -185,9 +177,7 @@ test_getpriority(uintmax_t num, uintmax_t int_arg, const char *path) uintmax_t i; benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { (void)getpriority(PRIO_PROCESS, 0); } benchmark_stop(); @@ -210,9 +200,7 @@ test_pipe(uintmax_t num, uintmax_t int_arg, const char *path) close(fd[0]); close(fd[1]); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { if (pipe(fd) == -1) err(-1, "test_pipe: pipe"); close(fd[0]); @@ -238,9 +226,7 @@ test_select(uintmax_t num, uintmax_t int_arg, const char *path) tv.tv_usec = 0; benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { (void)select(0, &readfds, &writefds, &exceptfds, &tv); } benchmark_stop(); @@ -258,9 +244,7 @@ test_socket_stream(uintmax_t num, uintmax_t int_arg, const char *path) err(-1, "test_socket_stream: socket"); close(so); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { so = socket(int_arg, SOCK_STREAM, 0); if (so == -1) err(-1, "test_socket_stream: socket"); @@ -281,9 +265,7 @@ test_socket_dgram(uintmax_t num, uintmax_t int_arg, const char *path) err(-1, "test_socket_dgram: socket"); close(so); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { so = socket(int_arg, SOCK_DGRAM, 0); if (so == -1) err(-1, "test_socket_dgram: socket"); @@ -304,9 +286,7 @@ test_socketpair_stream(uintmax_t num, uintmax_t int_arg, const char *path) close(so[0]); close(so[1]); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { if (socketpair(PF_LOCAL, SOCK_STREAM, 0, so) == -1) err(-1, "test_socketpair_stream: socketpair"); close(so[0]); @@ -327,9 +307,7 @@ test_socketpair_dgram(uintmax_t num, uintmax_t int_arg, const char *path) close(so[0]); close(so[1]); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { if (socketpair(PF_LOCAL, SOCK_DGRAM, 0, so) == -1) err(-1, "test_socketpair_dgram: socketpair"); close(so[0]); @@ -351,9 +329,7 @@ test_access(uintmax_t num, uintmax_t int_arg, const char *path) close(fd); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { access(path, O_RDONLY); close(fd); } @@ -375,9 +351,7 @@ test_create_unlink(uintmax_t num, uintmax_t int_arg, const char *path) if (unlink(path) < 0) err(-1, "test_create_unlink: unlink: %s", path); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { fd = open(path, O_RDWR | O_CREAT, 0600); if (fd < 0) err(-1, "test_create_unlink: create: %s", path); @@ -401,9 +375,7 @@ test_open_close(uintmax_t num, uintmax_t int_arg, const char *path) close(fd); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { fd = open(path, O_RDONLY); if (fd < 0) err(-1, "test_open_close: %s", path); @@ -419,9 +391,7 @@ test_bad_open(uintmax_t num, uintmax_t int_arg, const char *path) uintmax_t i; benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { open("", O_RDONLY); } benchmark_stop(); @@ -441,9 +411,7 @@ test_read(uintmax_t num, uintmax_t int_arg, const char *path) (void)pread(fd, buf, int_arg, 0); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { (void)pread(fd, buf, int_arg, 0); } benchmark_stop(); @@ -465,9 +433,7 @@ test_open_read_close(uintmax_t num, uintmax_t int_arg, const char *path) close(fd); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { fd = open(path, O_RDONLY); if (fd < 0) err(-1, "test_open_read_close: %s", path); @@ -490,9 +456,7 @@ test_dup(uintmax_t num, uintmax_t int_arg, const char *path) if (fd >= 0) close(fd); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { fd = dup(shmfd); if (fd >= 0) close(fd); @@ -513,9 +477,7 @@ test_shmfd(uintmax_t num, uintmax_t int_arg, const char *path) err(-1, "test_shmfd: shm_open"); close(shmfd); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { shmfd = shm_open(SHM_ANON, O_CREAT | O_RDWR, 0600); if (shmfd < 0) err(-1, "test_shmfd: shm_open"); @@ -538,9 +500,7 @@ test_fstat_shmfd(uintmax_t num, uintmax_t int_arg, const char *path) if (fstat(shmfd, &sb) < 0) err(-1, "test_fstat_shmfd: fstat"); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { (void)fstat(shmfd, &sb); } benchmark_stop(); @@ -562,9 +522,7 @@ test_fork(uintmax_t num, uintmax_t int_arg, const char *path) if (waitpid(pid, NULL, 0) < 0) err(-1, "test_fork: waitpid"); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { pid = fork(); if (pid < 0) err(-1, "test_fork: fork"); @@ -591,9 +549,7 @@ test_vfork(uintmax_t num, uintmax_t int_arg, const char *path) if (waitpid(pid, NULL, 0) < 0) err(-1, "test_vfork: waitpid"); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { pid = vfork(); if (pid < 0) err(-1, "test_vfork: vfork"); @@ -626,9 +582,7 @@ test_fork_exec(uintmax_t num, uintmax_t int_arg, const char *path) if (waitpid(pid, NULL, 0) < 0) err(-1, "test_fork: waitpid"); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { pid = fork(); if (pid < 0) err(-1, "test_fork_exec: fork"); @@ -659,9 +613,7 @@ test_vfork_exec(uintmax_t num, uintmax_t int_arg, const char *path) if (waitpid(pid, NULL, 0) < 0) err(-1, "test_vfork_exec: waitpid"); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { pid = vfork(); if (pid < 0) err(-1, "test_vfork_exec: vfork"); @@ -684,9 +636,7 @@ test_chroot(uintmax_t num, uintmax_t int_arg, const char *path) if (chroot("/") < 0) err(-1, "test_chroot: chroot"); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { if (chroot("/") < 0) err(-1, "test_chroot: chroot"); } @@ -704,9 +654,7 @@ test_setuid(uintmax_t num, uintmax_t int_arg, const char *path) if (setuid(uid) < 0) err(-1, "test_setuid: setuid"); benchmark_start(); - for (i = 0; i < num; i++) { - if (alarm_fired) - break; + BENCHMARK_FOREACH(i, num) { if (setuid(uid) < 0) err(-1, "test_setuid: setuid"); } |