Flexible I/O Tester development
 help / color / mirror / Atom feed
* Asynch IO and fill_device
@ 2011-06-10 19:05 Steven Lang
  2011-06-13  7:48 ` Jens Axboe
  0 siblings, 1 reply; 2+ messages in thread
From: Steven Lang @ 2011-06-10 19:05 UTC (permalink / raw)
  To: jaxboe, fio

I found an interesting combination of using fill_device when the
iodepth is greater than 1.  All outstanding IO causes an ENOSPC error,
but only the first is treated specially.  The remainder come through
and cause an error exit condition when the IO queue is being cleared.
So it is impossible to use deep IO with fill device.

This patch should fix the issue.


diff --git a/fio.c b/fio.c
index 34956e9..5ea1a2c 100644
--- a/fio.c
+++ b/fio.c
@@ -760,8 +760,11 @@ sync_done:
                struct fio_file *f;

                i = td->cur_depth;
-               if (i)
+               if (i) {
                        ret = io_u_queued_complete(td, i, NULL);
+                       if (td->o.fill_device && td->error == ENOSPC)
+                               td->error = 0;
+               }

                if (should_fsync(td) && td->o.end_fsync) {
                        td_set_runstate(td, TD_FSYNCING);
--

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-06-13  7:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-10 19:05 Asynch IO and fill_device Steven Lang
2011-06-13  7:48 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox