Recent changes (master)
The following changes since commit 3d0e3417997d9caa27cf97462e15ba437d285d29:
Fix segfault due to bad munmap() (2015-02-26 15:38:42 -0700)
are available in the git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to f52c9691bc8c285f3445235c69acdfd6de7f9b82:
Fio 2.2.6 (2015-02-27 08:30:04 -0700)
----------------------------------------------------------------
fio v2.2.6
----------------------------------------------------------------
Ben England (1):
Patch to make per-thread IOPS more accurate
Christian Ehrhardt (1):
fio: fix cycles_start build issue
Jens Axboe (1):
Fio 2.2.6
FIO-VERSION-GEN | 2 +- arch/arch-s390.h | 1 + arch/arch.h | 2 ++ gettime.c | 6 ++++++ os/windows/install.wxs | 2 +- stat.c | 11 ++++++----- 6 files changed, 17 insertions(+), 7 deletions(-)
---
Diff of recent changes:
FIO-VERSION-GEN +1 -1
@@ -1,7 +1,7 @@ #!/bin/sh GVF=FIO-VERSION-FILE -DEF_VER=fio-2.2.5 +DEF_VER=fio-2.2.6 LF=' '
arch/arch-s390.h +1 -0
@@ -40,6 +40,7 @@ static inline unsigned long long get_cpu_clock(void)#define ARCH_CPU_CLOCK_CYCLES_PER_USEC 1#define ARCH_HAVE_CPU_CLOCK +#undef ARCH_CPU_CLOCK_WRAPS#define ARCH_HAVE_INIT extern int tsc_reliable;
arch/arch.h +2 -0
@@ -30,6 +30,8 @@ enum {extern unsigned long arch_flags; +#define ARCH_CPU_CLOCK_WRAPS +#if defined(__i386__)#include "arch-x86.h" #elif defined(__x86_64__)
gettime.c +6 -0
@@ -17,6 +17,8 @@static unsigned long cycles_per_usec;static unsigned long inv_cycles_per_usec;static uint64_t max_cycles_for_mult; +#endif +#ifdef ARCH_CPU_CLOCK_WRAPS static unsigned long long cycles_start, cycles_wrap;#endif int tsc_reliable =0 ;
@@ -171,6 +173,7 @@ static void __fio_gettime(struct timeval *tp)#endif t =get_cpu_clock (); +#ifdef ARCH_CPU_CLOCK_WRAPS if (t < cycles_start && !cycles_wrap) cycles_wrap =1 ;else if (cycles_wrap && t >= cycles_start && !tv->warned) {
@@ -179,6 +182,7 @@ static void __fio_gettime(struct timeval *tp) } t -= cycles_start; +#endif tv->last_cycles = t; tv->last_tv_valid =1 ;#ifdef ARCH_CPU_CLOCK_CYCLES_PER_USEC
@@ -311,8 +315,10 @@ static int calibrate_cpu_clock(void) inv_cycles_per_usec =16777216UL / cycles_per_usec; max_cycles_for_mult = ~0ULL / inv_cycles_per_usec;dprint (FD_TIME ,"inv_cycles_per_usec=%lu\n" , inv_cycles_per_usec); +#ifdef ARCH_CPU_CLOCK_WRAPS cycles_start =get_cpu_clock ();dprint (FD_TIME ,"cycles_start=%llu\n" , cycles_start); +#endif return 0; }#else
os/windows/install.wxs +1 -1
@@ -10,7 +10,7 @@ <Product Id="*" Codepage="1252" Language="1033" Manufacturer="fio" Name="fio" - UpgradeCode="2338A332-5511-43CF-B9BD-5C60496CCFCC" Version="2.2.5"> + UpgradeCode="2338A332-5511-43CF-B9BD-5C60496CCFCC" Version="2.2.6"> <Package Description="Flexible IO Tester" InstallerVersion="301" Keywords="Installer,MSI,Database"
stat.c +6 -5
@@ -674,9 +674,9 @@ static void add_ddir_status_json(struct thread_stat *ts, struct group_run_stats *rs, int ddir, struct json_object *parent) { unsigned long min, max; -unsigned long long bw, iops; +unsigned long long bw;unsigned int *ovals =NULL ; -double mean, dev; +double mean, dev, iops;unsigned int len, minv, maxv;int i;const char *ddirname[] = {"read" ,"write" ,"trim" };
@@ -693,17 +693,18 @@ static void add_ddir_status_json(struct thread_stat *ts,json_object_add_value_object (parent, ts->unified_rw_rep ?"mixed" : ddirname[ddir], dir_object); - iops = bw =0 ; + bw =0 ; + iops =0.0 ;if (ts->runtime[ddir]) {uint64_t runt = ts->runtime[ddir]; bw = ((1000 * ts->io_bytes[ddir]) / runt) /1024 ; - iops = (1000 * (uint64_t ) ts->total_io_u[ddir]) / runt; + iops = (1000.0 * (uint64_t ) ts->total_io_u[ddir]) / runt; }json_object_add_value_int (dir_object,"io_bytes" , ts->io_bytes[ddir] >>10 );json_object_add_value_int (dir_object,"bw" , bw); -json_object_add_value_int (dir_object,"iops" , iops); +json_object_add_value_float (dir_object,"iops" , iops);json_object_add_value_int (dir_object,"runtime" , ts->runtime[ddir]);json_object_add_value_int (dir_object,"total_ios" , ts->total_io_u[ddir]);json_object_add_value_int (dir_object,"short_ios" , ts->short_io_u[ddir]);