Recent changes (master)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux