From: Tomohiro Kusumi Date: Wed, 27 Jul 2016 13:37:13 +0000 (+0900) Subject: Ignore exit_io_done= option if no I/O threads are configured X-Git-Tag: fio-2.14~86 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=a691d82fcc4e841568bf78d9b992aaee2a88b728;ds=inline Ignore exit_io_done= option if no I/O threads are configured The cpuio engine option exit_io_done= should be effective only if there is at least one real I/O thread configured. The existing fio_cpuio_queue() with exit_io_done= option enabled lets cpuio threads exit even if cpuio threads are the only threads configured. Since this option is supposed to mean "exit when I/O threads are done", cpuio threads exiting (but only after the first spin cycle is done) when no threads have done any I/O is a bit confusing. > [cpu] exit_on_io_done=bool Detect when IO threads are done, then exit. Signed-off-by: Tomohiro Kusumi Signed-off-by: Jens Axboe --- diff --git a/libfio.c b/libfio.c index 55762d7b..25866758 100644 --- a/libfio.c +++ b/libfio.c @@ -274,14 +274,18 @@ int fio_running_or_pending_io_threads(void) { struct thread_data *td; int i; + int nr_io_threads = 0; for_each_td(td, i) { if (td->flags & TD_F_NOIO) continue; + nr_io_threads++; if (td->runstate < TD_EXITED) return 1; } + if (!nr_io_threads) + return -1; /* we only had cpuio threads to begin with */ return 0; }