Fio will currently just attempt to start and immediately exit,
with no clue as to what went wrong. The behaviour is correct
in the sense that there's nothing to output, but it can be a
little confusing.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
return max(td->o.max_bs[DDIR_TRIM], max_bs);
}
return max(td->o.max_bs[DDIR_TRIM], max_bs);
}
+static inline unsigned int td_min_bs(struct thread_data *td)
+{
+ unsigned int min_bs;
+
+ min_bs = min(td->o.min_bs[DDIR_READ], td->o.min_bs[DDIR_WRITE]);
+ return min(td->o.min_bs[DDIR_TRIM], min_bs);
+}
+
static inline int is_power_of_2(unsigned int val)
{
return (val != 0 && ((val & (val - 1)) == 0));
static inline int is_power_of_2(unsigned int val)
{
return (val != 0 && ((val & (val - 1)) == 0));
if (td->o.random_distribution != FIO_RAND_DIST_RANDOM)
td->o.norandommap = 1;
if (td->o.random_distribution != FIO_RAND_DIST_RANDOM)
td->o.norandommap = 1;
+ /*
+ * If size is set but less than the min block size, complain
+ */
+ if (o->size && o->size < td_min_bs(td)) {
+ log_err("fio: size too small, must be larger than the IO size: %llu\n", (unsigned long long) o->size);
+ ret = 1;
+ }
+