summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
8f9cc4a)
Add fill_device option. Causes fio to write until ENOSPC occurs (assuming
rw=write).
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
and limited to 'size' in total (if that is given). If not
given, each created file is the same size.
and limited to 'size' in total (if that is given). If not
given, each created file is the same size.
+fill_device=bool Sets size to something really large and waits for ENOSPC (no
+ space left on device) as the terminating condition. Only makes
+ sense with sequential write.
+
blocksize=siint
bs=siint The block size used for the io units. Defaults to 4k. Values
can be given for both read and writes. If a single siint is
blocksize=siint
bs=siint The block size used for the io units. Defaults to 4k. Values
can be given for both read and writes. If a single siint is
* device/file sizes are zero and no size given, punt
*/
if ((!total_size || total_size == -1ULL) && !td->o.size &&
* device/file sizes are zero and no size given, punt
*/
if ((!total_size || total_size == -1ULL) && !td->o.size &&
- !(td->io_ops->flags & FIO_NOIO)) {
+ !(td->io_ops->flags & FIO_NOIO) && !td->o.fill_device) {
log_err("%s: you need to specify size=\n", td->o.name);
td_verror(td, EINVAL, "total_file_size");
return 1;
log_err("%s: you need to specify size=\n", td->o.name);
td_verror(td, EINVAL, "total_file_size");
return 1;
+ if (td->o.fill_device && td->error == ENOSPC) {
+ td->error = 0;
+ td->terminate = 1;
+ }
if (!td->error) {
struct fio_file *f;
if (!td->error) {
struct fio_file *f;
unsigned int iodepth_batch;
unsigned long long size;
unsigned int iodepth_batch;
unsigned long long size;
+ unsigned int fill_device;
unsigned long long file_size_low;
unsigned long long file_size_high;
unsigned long long start_offset;
unsigned long long file_size_low;
unsigned long long file_size_high;
unsigned long long start_offset;
+ if (o->fill_device && !o->size)
+ o->size = ULONG_LONG_MAX;
+
.minval = 1,
.help = "Total size of device or files",
},
.minval = 1,
.help = "Total size of device or files",
},
+ {
+ .name = "fill_device",
+ .type = FIO_OPT_BOOL,
+ .off1 = td_var_offset(fill_device),
+ .help = "Write until an ENOSPC error occurs",
+ .def = "0",
+ },
{
.name = "filesize",
.type = FIO_OPT_STR_VAL,
{
.name = "filesize",
.type = FIO_OPT_STR_VAL,