Add buffer_compress_chunk option
[fio.git] / options.c
index c3fdb56314a5007c00bab2bdee57817816c9e9ee..068065966bcf7d910f36666ecc140035f92af8a9 100644 (file)
--- a/options.c
+++ b/options.c
@@ -245,12 +245,9 @@ static int str_verify_cb(void *data, const char *mem)
 {
        struct thread_data *td = data;
 
-       if (td->o.verify != VERIFY_CRC32C_INTEL)
-               return 0;
-
-       if (!crc32c_intel_works()) {
-               log_info("fio: System does not support hw accelerated crc32c. Falling back to sw crc32c.\n");
-               td->o.verify = VERIFY_CRC32C;
+       if (td->o.verify == VERIFY_CRC32C_INTEL ||
+           td->o.verify == VERIFY_CRC32C) {
+               crc32c_intel_probe();
        }
 
        return 0;
@@ -1482,12 +1479,12 @@ static struct fio_option options[FIO_MAX_OPTS] = {
                            .help = "Use crc32 checksums for verification",
                          },
                          { .ival = "crc32c-intel",
-                           .oval = VERIFY_CRC32C_INTEL,
-                           .help = "Use hw crc32c checksums for verification",
+                           .oval = VERIFY_CRC32C,
+                           .help = "Use crc32c checksums for verification (hw assisted, if available)",
                          },
                          { .ival = "crc32c",
                            .oval = VERIFY_CRC32C,
-                           .help = "Use crc32c checksums for verification",
+                           .help = "Use crc32c checksums for verification (hw assisted, if available)",
                          },
                          { .ival = "crc16",
                            .oval = VERIFY_CRC16,
@@ -2016,6 +2013,20 @@ static struct fio_option options[FIO_MAX_OPTS] = {
                .help   = "Slightly scramble buffers on every IO submit",
                .def    = "1",
        },
+       {
+               .name   = "buffer_compress_percentage",
+               .type   = FIO_OPT_INT,
+               .off1   = td_var_offset(compress_percentage),
+               .maxval = 100,
+               .minval = 1,
+               .help   = "How compressible the buffer is (approximately)",
+       },
+       {
+               .name   = "buffer_compress_chunk",
+               .type   = FIO_OPT_INT,
+               .off1   = td_var_offset(compress_chunk),
+               .help   = "Size of compressible region in buffer",
+       },
        {
                .name   = "clat_percentiles",
                .type   = FIO_OPT_BOOL,
@@ -2169,6 +2180,40 @@ static struct fio_option options[FIO_MAX_OPTS] = {
                .off1   = td_var_offset(gid),
                .help   = "Run job with this group ID",
        },
+       {
+               .name   = "flow_id",
+               .type   = FIO_OPT_INT,
+               .off1   = td_var_offset(flow_id),
+               .help   = "The flow index ID to use",
+               .def    = "0",
+       },
+       {
+               .name   = "flow",
+               .type   = FIO_OPT_INT,
+               .off1   = td_var_offset(flow),
+               .help   = "Weight for flow control of this job",
+               .parent = "flow_id",
+               .def    = "0",
+       },
+       {
+               .name   = "flow_watermark",
+               .type   = FIO_OPT_INT,
+               .off1   = td_var_offset(flow_watermark),
+               .help   = "High watermark for flow control. This option"
+                       " should be set to the same value for all threads"
+                       " with non-zero flow.",
+               .parent = "flow_id",
+               .def    = "1024",
+       },
+       {
+               .name   = "flow_sleep",
+               .type   = FIO_OPT_INT,
+               .off1   = td_var_offset(flow_sleep),
+               .help   = "How many microseconds to sleep after being held"
+                       " back by the flow control mechanism",
+               .parent = "flow_id",
+               .def    = "0",
+       },
        {
                .name = NULL,
        },