Skip to contentSkip to conversation

Recent changes (master)

PATCH Jens Axboe 1 participant 1 message Nov 21, 2018

lore
Share & tools
lore

Jens Axboe

author
#0 lore raw

The following changes since commit a1b006fe1cd3aa7e1b567f55e5a4c827d54f7c41:

engines/libaio: fix new aio poll API (2018-11-19 19:41:53 -0700)

are available in the git repository at:

git://git.kernel.dk/fio.git master

for you to fetch changes up to e65ef9593436f0f62df366f506f7c4d318b5cd71:

engines/libaio: fallback to old io_setup() system call (2018-11-21 05:53:38 -0700)

----------------------------------------------------------------
Jens Axboe (4):
Kill "No I/O performed by ..." message
backend: initialize io engine before io_u buffers engines/libaio: add support for user mapped iocbs engines/libaio: fallback to old io_setup() system call

 backend.c        |  25 ++----------
 engines/libaio.c | 118 +++++++++++++++++++++++++++++++++++++++++++++++--------
 2 files changed, 105 insertions(+), 38 deletions(-)

---

Diff of recent changes:

backend.c +4 -21
index a92ec45..2f103b3 100644
@@ -1542,7 +1542,7 @@ static void *thread_main(void *data)
 	struct sk_out *sk_out = fd->sk_out;
 	uint64_t bytes_done[DDIR_RWDIR_CNT];
 	int deadlock_loop_cnt;
-	bool clear_state, did_some_io;
+	bool clear_state;
 	int ret;
 
 	sk_out_assign(sk_out);
@@ -1698,6 +1698,9 @@ static void *thread_main(void *data)
 	if (!init_iolog(td))
 		goto err;
 
+	if (td_io_init(td))
+		goto err;
+
 	if (init_io_u(td))
 		goto err;
 
@@ -1728,9 +1731,6 @@ static void *thread_main(void *data)
 	if (!o->create_serialize && setup_files(td))
 		goto err;
 
-	if (td_io_init(td))
-		goto err;
-
 	if (!init_random_map(td))
 		goto err;
 
@@ -1763,7 +1763,6 @@ static void *thread_main(void *data)
 
 	memset(bytes_done, 0, sizeof(bytes_done));
 	clear_state = false;
-	did_some_io = false;
 
 	while (keep_running(td)) {
 		uint64_t verify_bytes;
@@ -1841,9 +1840,6 @@ static void *thread_main(void *data)
 		    td_ioengine_flagged(td, FIO_UNIDIR))
 			continue;
 
-		if (ddir_rw_sum(bytes_done))
-			did_some_io = true;
-
 		clear_io_state(td, 0);
 
 		fio_gettime(&td->start, NULL);
@@ -1865,19 +1861,6 @@ static void *thread_main(void *data)
 	}
 
 	/*
-	 * If td ended up with no I/O when it should have had,
-	 * then something went wrong unless FIO_NOIO or FIO_DISKLESSIO.
-	 * (Are we not missing other flags that can be ignored ?)
-	 */
-	if (!td->error && (td->o.size || td->o.io_size) &&
-	    !ddir_rw_sum(bytes_done) && !did_some_io && !td->o.create_only &&
-	    !(td_ioengine_flagged(td, FIO_NOIO) ||
-	      td_ioengine_flagged(td, FIO_DISKLESSIO)))
-		log_err("%s: No I/O performed by %s, "
-			 "perhaps try --debug=io option for details?\n",
-			 td->o.name, td->io_ops->name);
-
-	/*
 	 * Acquire this lock if we were doing overlap checking in
 	 * offload mode so that we don't clean up this job while
 	 * another thread is checking its io_u's for overlap
engines/libaio.c +101 -17

219 lines not on this page · raw message