#include "filelock.h"
#include "lib/getopt.h"
-#include "lib/strcasestr.h"
+#include "oslib/strcasestr.h"
#include "crc/test.h"
td->rate_next_io_time[ddir] = 0;
td->rate_io_issue_bytes[ddir] = 0;
+ td->last_usec = 0;
return 0;
}
/*
* For fully compressible data, just zero them at init time.
- * It's faster than repeatedly filling it.
+ * It's faster than repeatedly filling it. For non-zero
+ * compression, we should have refill_buffers set. Set it, unless
+ * the job file already changed it.
*/
- if (td->o.compress_percentage == 100) {
- td->o.zero_buffers = 1;
- td->o.compress_percentage = 0;
+ if (o->compress_percentage) {
+ if (o->compress_percentage == 100) {
+ o->zero_buffers = 1;
+ o->compress_percentage = 0;
+ } else if (!fio_option_is_set(o, refill_buffers))
+ o->refill_buffers = 1;
}
/*
init_rand_seed(&td->file_size_state, td->rand_seeds[FIO_RAND_FILE_SIZE_OFF], use64);
init_rand_seed(&td->trim_state, td->rand_seeds[FIO_RAND_TRIM_OFF], use64);
init_rand_seed(&td->delay_state, td->rand_seeds[FIO_RAND_START_DELAY], use64);
+ init_rand_seed(&td->poisson_state, td->rand_seeds[FIO_RAND_POISSON_OFF], 0);
if (!td_random(td))
return;
if ((o->stonewall || o->new_group) && prev_group_jobs) {
prev_group_jobs = 0;
groupid++;
+ if (groupid == INT_MAX) {
+ log_err("fio: too many groups defined\n");
+ goto err;
+ }
}
td->groupid = groupid;
printf(" --runtime\t\tRuntime in seconds\n");
printf(" --bandwidth-log\tGenerate per-job bandwidth logs\n");
printf(" --minimal\t\tMinimal (terse) output\n");
- printf(" --output-format=x\tOutput format (terse,json,normal)\n");
+ printf(" --output-format=x\tOutput format (terse,json,json+,normal)\n");
printf(" --terse-version=x\tSet terse version output format to 'x'\n");
printf(" --version\t\tPrint version info and exit\n");
printf(" --help\t\tPrint this page\n");
char *opt;
int i;
+ if (!string)
+ return 0;
+
if (!strcmp(string, "?") || !strcmp(string, "help")) {
log_info("fio: dumping debug options:");
for (i = 0; debug_levels[i].name; i++) {
output_format |= FIO_OUTPUT_TERSE;
else if (!strcmp(opt, "json"))
output_format |= FIO_OUTPUT_JSON;
+ else if (!strcmp(opt, "json+"))
+ output_format |= (FIO_OUTPUT_JSON | FIO_OUTPUT_JSON_PLUS);
else if (!strcmp(opt, "normal"))
output_format |= FIO_OUTPUT_NORMAL;
else {