diff --git a/src/task_bulk.c b/src/task_bulk.c index 3a854ec06979ff0ff8ff7c092169d49c135d561c..3d69110143aa2e1cd9a4e622ce7063f20ccba276 100644 --- a/src/task_bulk.c +++ b/src/task_bulk.c @@ -41,12 +41,12 @@ static void bump_memlock_rlimit(void) } static void print_usage(char **argv) { - fprintf(stderr, "Usage: %s user|bpf", argv[0]); + fprintf(stderr, "Usage: %s user|bpf <iter>", argv[0]); } int main(int argc, char **argv) { - if (argc != 2) { + if (argc != 3) { print_usage(argv); return 1; } @@ -59,29 +59,36 @@ int main(int argc, char **argv) print_usage(argv); return 1; } + int iter = atoi(argv[2]); + if (iter < 0) { + print_usage(argv); + return 1; + } int err; + if (user) { int *fds = malloc(sizeof(int) * SIZE); if (fds == NULL) { return 1; } - for (int i = 0; i < SIZE; i++) { - int fd = open("/tmp", O_TMPFILE | O_RDWR, S_IRUSR | S_IWUSR); - if (fd == -1) { - perror("open"); - return 1; + for (int j = 0; j < iter; j++) { + for (int i = 0; i < SIZE; i++) { + int fd = open("/tmp", O_TMPFILE | O_RDWR, S_IRUSR | S_IWUSR); + if (fd == -1) { + perror("open"); + return 1; + } + fds[i] = fd; } - fds[i] = fd; - } - - for (int i = 0; i < SIZE; i++) { - err = close(fds[i]); - if (err) { - perror("close"); - return 1; + for (int i = 0; i < SIZE; i++) { + err = close(fds[i]); + if (err) { + perror("close"); + return 1; + } } } @@ -113,8 +120,9 @@ int main(int argc, char **argv) int prog_fd = bpf_program__fd(skel->progs.entry); - long *output; - err = syscall(SYS_bpftask, prog_fd, &output); + for (int j = 0; j < iter; j++) { + err = syscall(SYS_bpftask, prog_fd, NULL); + } cleanup: task_bulk_bpf__destroy(skel);