X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.c;h=4d628b9f522383880c5fde1dd34d91ff179eedf1;hb=cbcd1062e2351b87321f91f1f266ba2c8d9c90a7;hp=b0afdcc85f303303b2513194b20bfc7212651c83;hpb=c8bb6faf52ea8079e98df17cd2c5a029d3f33057;p=fio.git diff --git a/fio.c b/fio.c index b0afdcc8..4d628b9f 100644 --- a/fio.c +++ b/fio.c @@ -43,6 +43,8 @@ static unsigned long page_mask; int groupid = 0; int thread_number = 0; +int nr_process = 0; +int nr_thread = 0; int shm_id = 0; int temp_stall_ts; @@ -253,7 +255,8 @@ static void do_verify(struct thread_data *td) { struct fio_file *f; struct io_u *io_u; - int ret, i, min_events; + int ret, min_events; + unsigned int i; /* * sync io first and invalidate cache, to make sure we really @@ -377,7 +380,8 @@ static void do_io(struct thread_data *td) { struct timeval s; unsigned long usec; - int i, ret = 0; + unsigned int i; + int ret = 0; td_set_runstate(td, TD_RUNNING); @@ -648,7 +652,8 @@ static int switch_ioscheduler(struct thread_data *td) static int clear_io_state(struct thread_data *td) { struct fio_file *f; - int i, ret; + unsigned int i; + int ret; td->ts.stat_io_bytes[0] = td->ts.stat_io_bytes[1] = 0; td->this_io_bytes[0] = td->this_io_bytes[1] = 0; @@ -692,33 +697,33 @@ static void *thread_main(void *data) INIT_LIST_HEAD(&td->io_log_list); if (init_io_u(td)) - goto err; + goto err_sem; if (fio_setaffinity(td) == -1) { td_verror(td, errno, "cpu_set_affinity"); - goto err; + goto err_sem; } if (init_iolog(td)) - goto err; + goto err_sem; if (td->ioprio) { if (ioprio_set(IOPRIO_WHO_PROCESS, 0, td->ioprio) == -1) { td_verror(td, errno, "ioprio_set"); - goto err; + goto err_sem; } } if (nice(td->nice) == -1) { td_verror(td, errno, "nice"); - goto err; + goto err_sem; } if (init_random_state(td)) - goto err; + goto err_sem; if (td->ioscheduler && switch_ioscheduler(td)) - goto err; + goto err_sem; td_set_runstate(td, TD_INITIALIZED); fio_sem_up(startup_sem); @@ -821,6 +826,9 @@ err: cleanup_io_u(td); td_set_runstate(td, TD_EXITED); return (void *) (unsigned long) td->error; +err_sem: + fio_sem_up(startup_sem); + goto err; } /* @@ -948,7 +956,15 @@ static void run_threads(void) return; if (!terse_output) { - printf("Starting %d thread%s\n", thread_number, thread_number > 1 ? "s" : ""); + printf("Starting "); + if (nr_thread) + printf("%d thread%s", nr_thread, nr_thread > 1 ? "s" : ""); + if (nr_process) { + if (nr_thread) + printf(" and "); + printf("%d process%s", nr_process, nr_process > 1 ? "es" : ""); + } + printf("\n"); fflush(stdout); }