Change comments and prints that are referring to values based on
binary multiples to use IEC 80000-13 prefixes for binary
multiples rather than SI prefixes for decimal multiples (e.g.,
KiB, MiB, and GiB rather than KB, MB, and GB).
Includes a fix for the rate_min print that was printing "KB/s"
although it was really printing bytes per second.
Includes a fix for goptions confusing the PB and TB units (while
changing them to PiB and TiB).
Signed-off-by: Jens Axboe <axboe@fb.com>
The --alloc-size switch allows one to use a larger pool size for smalloc.
If running large jobs with randommap enabled, fio can run out of memory.
Smalloc is an internal allocator for shared structures from a fixed size
The --alloc-size switch allows one to use a larger pool size for smalloc.
If running large jobs with randommap enabled, fio can run out of memory.
Smalloc is an internal allocator for shared structures from a fixed size
-memory pool. The pool size defaults to 16M and can grow to 8 pools.
+memory pool. The pool size defaults to 16MiB and can grow to 8 pools.
NOTE: While running .fio_smalloc.* backing store files are visible in /tmp.
NOTE: While running .fio_smalloc.* backing store files are visible in /tmp.
* check bandwidth specified rate
*/
if (bytes < td->rate_bytes[ddir]) {
* check bandwidth specified rate
*/
if (bytes < td->rate_bytes[ddir]) {
- log_err("%s: min rate %u not met\n", td->o.name,
- ratemin);
+ log_err("%s: rate_min=%uB/s not met, only transferred %lluB\n",
+ td->o.name, ratemin, bytes);
return true;
} else {
if (spent)
return true;
} else {
if (spent)
if (rate < ratemin ||
bytes < td->rate_bytes[ddir]) {
if (rate < ratemin ||
bytes < td->rate_bytes[ddir]) {
- log_err("%s: min rate %u not met, got"
- " %luKB/sec\n", td->o.name,
- ratemin, rate);
+ log_err("%s: rate_min=%uB/s not met, got %luB/s\n",
+ td->o.name, ratemin, rate);
* checks iops specified rate
*/
if (iops < rate_iops) {
* checks iops specified rate
*/
if (iops < rate_iops) {
- log_err("%s: min iops rate %u not met\n",
- td->o.name, rate_iops);
+ log_err("%s: rate_iops_min=%u not met, only performed %lu IOs\n",
+ td->o.name, rate_iops, iops);
return true;
} else {
if (spent)
return true;
} else {
if (spent)
if (rate < rate_iops_min ||
iops < td->rate_blocks[ddir]) {
if (rate < rate_iops_min ||
iops < td->rate_blocks[ddir]) {
- log_err("%s: min iops rate %u not met,"
- " got %lu\n", td->o.name,
- rate_iops_min, rate);
+ log_err("%s: rate_iops_min=%u not met, got %lu IOPS\n",
+ td->o.name, rate_iops_min, rate);
#include "../verify.h"
/*
#include "../verify.h"
/*
- * Limits us to 1GB of mapped files in total to model after
+ * Limits us to 1GiB of mapped files in total to model after
* mmap engine behavior
*/
#define MMAP_TOTAL_SZ (1 * 1024 * 1024 * 1024UL)
* mmap engine behavior
*/
#define MMAP_TOTAL_SZ (1 * 1024 * 1024 * 1024UL)
#include "../verify.h"
/*
#include "../verify.h"
/*
- * Limits us to 1GB of mapped files in total
+ * Limits us to 1GiB of mapped files in total
*/
#define MMAP_TOTAL_SZ (1 * 1024 * 1024 * 1024UL)
*/
#define MMAP_TOTAL_SZ (1 * 1024 * 1024 * 1024UL)
diff = io_bytes[i] - prev_io_bytes[i];
if (mtime)
diff = io_bytes[i] - prev_io_bytes[i];
if (mtime)
- this_rate = ((1000 * diff) / mtime) / 1024;
+ this_rate = ((1000 * diff) / mtime) / 1024; /* KiB/s */
if (need_extend) {
temp_stall_ts = 1;
if (output_format & FIO_OUTPUT_NORMAL)
if (need_extend) {
temp_stall_ts = 1;
if (output_format & FIO_OUTPUT_NORMAL)
- log_info("%s: Laying out IO file(s) (%u file(s) /"
- " %lluMB)\n", o->name, need_extend,
- extend_size >> 20);
+ log_info("%s: Laying out IO file(s) (%u file(s) / %lluMiB)\n",
+ o->name, need_extend, extend_size >> 20);
for_each_file(td, f, i) {
unsigned long long old_len = -1ULL, extend_len = -1ULL;
for_each_file(td, f, i) {
unsigned long long old_len = -1ULL, extend_len = -1ULL;
unsigned long long *p, unsigned int idx)
{
struct gopt_str_val *g;
unsigned long long *p, unsigned int idx)
{
struct gopt_str_val *g;
- const gchar *postfix[] = { "B", "KB", "MB", "GB", "PB", "TB", "" };
+ const gchar *postfix[] = { "B", "KiB", "MiB", "GiB", "PiB", "PiB", "" };
dprint(FD_MEM, "pinning %llu bytes\n", td->o.lockmem);
/*
dprint(FD_MEM, "pinning %llu bytes\n", td->o.lockmem);
/*
- * Don't allow mlock of more than real_mem-128MB
+ * Don't allow mlock of more than real_mem-128MiB
*/
phys_mem = os_phys_mem();
if (phys_mem) {
if ((td->o.lockmem + 128 * 1024 * 1024) > phys_mem) {
td->o.lockmem = phys_mem - 128 * 1024 * 1024;
*/
phys_mem = os_phys_mem();
if (phys_mem) {
if ((td->o.lockmem + 128 * 1024 * 1024) > phys_mem) {
td->o.lockmem = phys_mem - 128 * 1024 * 1024;
- log_info("fio: limiting mlocked memory to %lluMB\n",
+ log_info("fio: limiting mlocked memory to %lluMiB\n",
td->o.lockmem >> 20);
}
}
td->o.lockmem >> 20);
}
}
if (ts->runtime[ddir]) {
uint64_t runt = ts->runtime[ddir];
if (ts->runtime[ddir]) {
uint64_t runt = ts->runtime[ddir];
- bw = ((1000 * ts->io_bytes[ddir]) / runt) / 1024;
+ bw = ((1000 * ts->io_bytes[ddir]) / runt) / 1024; /* KiB/s */
iops = (1000 * (uint64_t) ts->total_io_u[ddir]) / runt;
}
iops = (1000 * (uint64_t) ts->total_io_u[ddir]) / runt;
}
if (ts->runtime[ddir]) {
uint64_t runt = ts->runtime[ddir];
if (ts->runtime[ddir]) {
uint64_t runt = ts->runtime[ddir];
- bw = ((1000 * ts->io_bytes[ddir]) / runt) / 1024;
+ bw = ((1000 * ts->io_bytes[ddir]) / runt) / 1024; /* KiB/s */
iops = (1000.0 * (uint64_t) ts->total_io_u[ddir]) / runt;
}
iops = (1000.0 * (uint64_t) ts->total_io_u[ddir]) / runt;
}
continue; /* No entries for interval */
if (spent)
continue; /* No entries for interval */
if (spent)
- rate = delta * 1000 / spent / 1024;
+ rate = delta * 1000 / spent / 1024; /* KiB/s */