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); -- -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html