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:

diff --git a/FIO-VERSION-GEN b/FIO-VERSION-GEN
index da75022..9ae7b7d 100755
--- a/FIO-VERSION-GEN
+++ b/FIO-VERSION-GEN
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 GVF=FIO-VERSION-FILE
-DEF_VER=fio-2.2.5
+DEF_VER=fio-2.2.6
 
 LF='
 '
diff --git a/arch/arch-s390.h b/arch/arch-s390.h
index 169282b..cc7a1d1 100644
--- a/arch/arch-s390.h
+++ b/arch/arch-s390.h
@@ -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;
diff --git a/arch/arch.h b/arch/arch.h
index 0075f73..5671b9a 100644
--- a/arch/arch.h
+++ b/arch/arch.h
@@ -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__)
diff --git a/gettime.c b/gettime.c
index 6863ce3..d1c8eb9 100644
--- a/gettime.c
+++ b/gettime.c
@@ -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
diff --git a/os/windows/install.wxs b/os/windows/install.wxs
index f72dfb1..74f1d28 100755
--- a/os/windows/install.wxs
+++ b/os/windows/install.wxs
@@ -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"
diff --git a/stat.c b/stat.c
index db4a387..85bd728 100644
--- a/stat.c
+++ b/stat.c
@@ -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]);
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to