Fixups for poisson rate
[fio.git] / init.c
diff --git a/init.c b/init.c
index bb03566f44f1db837a77705aa0ac42306bbb7094..04b4a1e5020c0b85d767ea33bcb1918e320a1eb8 100644 (file)
--- a/init.c
+++ b/init.c
@@ -116,6 +116,11 @@ static struct option l_opts[FIO_NR_OPTIONS] = {
                .has_arg        = optional_argument,
                .val            = 'F' | FIO_CLIENT_FLAG,
        },
+       {
+               .name           = (char *) "append-terse",
+               .has_arg        = optional_argument,
+               .val            = 'f',
+       },
        {
                .name           = (char *) "version",
                .has_arg        = no_argument,
@@ -468,6 +473,7 @@ static int __setup_rate(struct thread_data *td, enum fio_ddir ddir)
 
        td->rate_next_io_time[ddir] = 0;
        td->rate_io_issue_bytes[ddir] = 0;
+       td->last_usec = 0;
        return 0;
 }
 
@@ -852,6 +858,7 @@ static void td_fill_rand_seeds_internal(struct thread_data *td, int use64)
        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;
@@ -1761,7 +1768,7 @@ static void usage(const char *name)
        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");
@@ -2019,6 +2026,8 @@ static int parse_output_format(const char *optarg)
                        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 {
@@ -2100,6 +2109,9 @@ int parse_cmd_line(int argc, char *argv[], int client_type)
                                break;
                        }
                        break;
+               case 'f':
+                       output_format |= FIO_OUTPUT_TERSE;
+                       break;
                case 'h':
                        did_arg = 1;
                        if (!cur_client) {