#include <ctype.h>
#include <string.h>
#include <assert.h>
-#include <libgen.h>
-#include <fcntl.h>
-#include <sys/types.h>
#include <sys/stat.h>
#include <netinet/in.h>
#include "fio.h"
#include "verify.h"
#include "parse.h"
-#include "lib/fls.h"
#include "lib/pattern.h"
#include "options.h"
#include "optgroup.h"
};
static int split_parse_ddir(struct thread_options *o, struct split *split,
- enum fio_ddir ddir, char *str, bool absolute)
+ enum fio_ddir ddir, char *str, bool absolute,
+ unsigned int max_splits)
{
unsigned long long perc;
unsigned int i;
split->val1[i] = val;
split->val2[i] = perc;
i++;
- if (i == ZONESPLIT_MAX)
+ if (i == max_splits) {
+ log_err("fio: hit max of %d split entries\n", i);
break;
+ }
}
split->nr = i;
memset(&split, 0, sizeof(split));
- if (split_parse_ddir(o, &split, ddir, str, data))
+ if (split_parse_ddir(o, &split, ddir, str, data, BSSPLIT_MAX))
return 1;
if (!split.nr)
return 0;
memset(&split, 0, sizeof(split));
- if (split_parse_ddir(o, &split, ddir, str, absolute))
+ if (split_parse_ddir(o, &split, ddir, str, absolute, ZONESPLIT_MAX))
return 1;
if (!split.nr)
return 0;
if (parse_dryrun())
return 0;
- td->o.ss_state |= __FIO_SS_PCT;
+ td->o.ss_state |= FIO_SS_PCT;
td->o.ss_limit.u.f = val;
- } else if (td->o.ss_state & __FIO_SS_IOPS) {
+ } else if (td->o.ss_state & FIO_SS_IOPS) {
if (!str_to_float(nr, &val, 0)) {
log_err("fio: steadystate IOPS threshold postfix parsing failed\n");
free(nr);
.posval = {
{ .ival = "0",
.oval = F_ADV_NONE,
- .help = "Don't issue fadvise",
+ .help = "Don't issue fadvise/madvise",
},
{ .ival = "1",
.oval = F_ADV_TYPE,
.category = FIO_OPT_C_IO,
.group = FIO_OPT_G_RATE,
},
+ {
+ .name = "rate_ignore_thinktime",
+ .lname = "Rate ignore thinktime",
+ .type = FIO_OPT_BOOL,
+ .off1 = offsetof(struct thread_options, rate_ign_think),
+ .help = "Rated IO ignores thinktime settings",
+ .parent = "rate",
+ .category = FIO_OPT_C_IO,
+ .group = FIO_OPT_G_RATE,
+ },
{
.name = "max_latency",
.lname = "Max Latency (usec)",