Implement new Rate Control
[fio.git] / init.c
diff --git a/init.c b/init.c
index 9f1041c7a4e7b9add4b8b1b6889473b4705b7085..7adee9647192b3f0feb26932dd661f7946e5f71a 100644 (file)
--- a/init.c
+++ b/init.c
@@ -465,7 +465,7 @@ static int __setup_rate(struct thread_data *td, enum fio_ddir ddir)
                return -1;
        }
 
-       td->rate_pending_usleep[ddir] = 0;
+       td->rate_next_io_time[ddir] = 0;
        return 0;
 }
 
@@ -662,7 +662,9 @@ static int fixup_options(struct thread_data *td)
                        ret = warnings_fatal;
                }
 
-               o->refill_buffers = 1;
+               if (!fio_option_is_set(o, refill_buffers))
+                       o->refill_buffers = 1;
+
                if (o->max_bs[DDIR_WRITE] != o->min_bs[DDIR_WRITE] &&
                    !o->verify_interval)
                        o->verify_interval = o->min_bs[DDIR_WRITE];
@@ -1710,13 +1712,41 @@ static int fill_def_thread(void)
        return 0;
 }
 
+static void show_debug_categories(void)
+{
+       struct debug_level *dl = &debug_levels[0];
+       int curlen, first = 1;
+
+       curlen = 0;
+       while (dl->name) {
+               int has_next = (dl + 1)->name != NULL;
+
+               if (first || curlen + strlen(dl->name) >= 80) {
+                       if (!first) {
+                               printf("\n");
+                               curlen = 0;
+                       }
+                       curlen += printf("\t\t\t%s", dl->name);
+                       curlen += 3 * (8 - 1);
+                       if (has_next)
+                               curlen += printf(",");
+               } else {
+                       curlen += printf("%s", dl->name);
+                       if (has_next)
+                               curlen += printf(",");
+               }
+               dl++;
+               first = 0;
+       }
+       printf("\n");
+}
+
 static void usage(const char *name)
 {
        printf("%s\n", fio_version_string);
        printf("%s [options] [job options] <job file(s)>\n", name);
-       printf("  --debug=options\tEnable debug logging. May be one/more of:\n"
-               "\t\t\tprocess,file,io,mem,blktrace,verify,random,parse,\n"
-               "\t\t\tdiskutil,job,mutex,profile,time,net,rate,compress\n");
+       printf("  --debug=options\tEnable debug logging. May be one/more of:\n");
+       show_debug_categories();
        printf("  --parse-only\t\tParse options only, don't start any IO\n");
        printf("  --output\t\tWrite output to file\n");
        printf("  --runtime\t\tRuntime in seconds\n");