Skip to contentSkip to conversation

Recent changes (master)

PATCH Jens Axboe 1 participant 1 message Mar 21, 2018

lore
Share & tools
lore

Jens Axboe

author
#0 lore raw

The following changes since commit 96344ff00349422172de6fa57899c66dc3c00391:

optgroup: add check for optgroup bit numbers being within range (2018-03-19 15:56:20 -0600)

are available in the git repository at:

git://git.kernel.dk/fio.git master

for you to fetch changes up to 69c594d81d4067fadd70fa4909e19d615efa5f1c:

optgroup: move debug code into function (2018-03-20 11:19:19 -0600)

----------------------------------------------------------------
Jens Axboe (3):
Merge branch 'expand_fiohistparser' of https://github.com/shimrot/fio
Fix whitespace issues in previous commit
optgroup: move debug code into function

krisd (1):
Expand fiologparser_hist operations with new options

 optgroup.c                        |   5 +-
 tools/hist/fiologparser_hist.py   | 385 ++++++++++++++++++++++++++++++--------
 tools/hist/fiologparser_hist.py.1 |  23 ++-
 3 files changed, 328 insertions(+), 85 deletions(-)

---

Diff of recent changes:

optgroup.c +3 -2
index 1c418f5..04ceec7 100644
@@ -202,7 +202,8 @@ const struct opt_group *opt_group_from_mask(uint64_t *mask)
 
 const struct opt_group *opt_group_cat_from_mask(uint64_t *mask)
 {
+	compiletime_assert(__FIO_OPT_G_NR <= 8 * sizeof(uint64_t),
+				"__FIO_OPT_G_NR");
+
 	return group_from_mask(fio_opt_cat_groups, mask, FIO_OPT_G_INVALID);
 }
-
-compiletime_assert(__FIO_OPT_G_NR <= 8 * sizeof(uint64_t), "__FIO_OPT_G_NR");
tools/hist/fiologparser_hist.py +304 -81

500 lines not on this page · raw message

tools/hist/fiologparser_hist.py.1 +21 -2
index 5dfacfe..449f248 100644
@@ -8,7 +8,7 @@ fiologparser_hist.py \- Calculate statistics from fio histograms
 .B fiologparser_hist.py
 is a utility for converting *_clat_hist* files
 generated by fio into a CSV of latency statistics including minimum,
-average, maximum latency, and 50th, 95th, and 99th percentiles.
+average, maximum latency, and selectable percentiles.
 .SH EXAMPLES
 .PP
 .nf
@@ -42,6 +42,9 @@ Interval at which statistics are reported. Defaults to 1000 ms. This
 should be set a minimum of the value for \fBlog_hist_msec\fR as given
 to fio.
 .TP
+.BR \-\-noweight
+Do not perform weighting of samples between output intervals. Default is False.
+.TP
 .BR \-d ", " \-\-divisor \fR=\fPint
 Divide statistics by this value. Defaults to 1. Useful if you want to
 convert latencies from milliseconds to seconds (\fBdivisor\fR=\fP1000\fR).
@@ -53,6 +56,21 @@ Enables warning messages printed to stderr, useful for debugging.
 Set this to the value of \fIFIO_IO_U_PLAT_GROUP_NR\fR as defined in
 \fPstat.h\fR if fio has been recompiled. Defaults to 19, the
 current value used in fio. See NOTES for more details.
+.TP
+.BR \-\-percentiles \fR=\fPstr
+Pass desired list of comma or colon separated percentiles to print.
+The default is "90.0:95.0:99.0", but min, median(50%) and max percentiles are always printed
+.TP
+.BR \-\-usbin
+Use to indicate to parser that histogram bin latencies values are in microseconds.
+The default is to use nanoseconds, but histogram logs from fio versions <= 2.99 are in microseconds.
+.TP
+.BR \-\-directions \fR=\fPstr
+By default, all directions (e.g read and write) histogram bins are combined
+producing one 'mixed' result.
+To produce independent directional results, pass some combination of
+\'rwtm\' characters with the \-\-directions\fR=\fPrwtm option.
+A \'dir\' column is added indicating the result direction for a row.
 
 .SH NOTES
 end-times are calculated to be uniform increments of the \fB\-\-interval\fR value given,
@@ -87,7 +105,8 @@ min / max seen by fio (and reported in *_clat.* with averaging turned off).
 .PP
 Average statistics use a standard weighted arithmetic mean.
 
-Percentile statistics are computed using the weighted percentile method as
+When --noweights option is false (the default)
+percentile statistics are computed using the weighted percentile method as
 described here: \fIhttps://en.wikipedia.org/wiki/Percentile#Weighted_percentile\fR.
 See weights() method for details on how weights are computed for individual
 samples. In process_interval() we further multiply by the height of each bin