* 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* Re: Asynch IO and fill_device
2011-06-10 19:05 Asynch IO and fill_device Steven Lang
@ 2011-06-13 7:48 ` Jens Axboe
0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2011-06-13 7:48 UTC (permalink / raw)
To: Steven Lang; +Cc: fio
On 2011-06-10 21:05, Steven Lang wrote:
> 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.
Thanks, applied.
--
Jens Axboe
^ permalink raw reply [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