Recent changes (master)

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

 



The following changes since commit e382e661f6a67a24d8042b9e4b8f812b7126bdc4:

  Add --eta-newline option (2013-02-22 20:48:56 +0100)

are available in the git repository at:
  git://git.kernel.dk/fio.git master

Bruce Cran (2):
      Add section 9 to HOWTO table of contents.
      Add LICENSE to Windows installer, fix filename extensions and update URL.

Jens Axboe (2):
      Merge branch 'master' of ssh://brick.kernel.dk/data/git/fio
      gettime: add some sanity checks to platform clock

 HOWTO                  |    3 ++-
 gettime.c              |   24 +++++++++++++++++++++---
 os/windows/install.wxs |   14 +++++++++-----
 3 files changed, 32 insertions(+), 9 deletions(-)

---

Diff of recent changes:

diff --git a/HOWTO b/HOWTO
index ea8730c..fbe8f79 100644
--- a/HOWTO
+++ b/HOWTO
@@ -9,6 +9,7 @@ Table of contents
 6. Normal output
 7. Terse output
 8. Trace file format
+9. CPU idleness profiling
 
 1.0 Overview and history
 ------------------------
@@ -775,7 +776,7 @@ random_generator=str	Fio supports the following engines for generating
 		block sizes, not with workloads that use multiple block
 		sizes. If used with such a workload, fio may read or write
 		some blocks multiple times.
-		
+
 nice=int	Run the job with the given nice value. See man nice(2).
 
 prio=int	Set the io priority value of this job. Linux limits us to
diff --git a/gettime.c b/gettime.c
index 5b85a23..d56045c 100644
--- a/gettime.c
+++ b/gettime.c
@@ -262,7 +262,7 @@ static unsigned long get_cycles_per_usec(void)
 
 #define NR_TIME_ITERS	50
 
-static void calibrate_cpu_clock(void)
+static int calibrate_cpu_clock(void)
 {
 	double delta, mean, S;
 	uint64_t avg, cycles[NR_TIME_ITERS];
@@ -279,6 +279,13 @@ static void calibrate_cpu_clock(void)
 		}
 	}
 
+	/*
+	 * The most common platform clock breakage is returning zero
+	 * indefinitely. Check for that and return failure.
+	 */
+	if (!cycles[0] && !cycles[NR_TIME_ITERS - 1])
+		return 1;
+
 	S = sqrt(S / (NR_TIME_ITERS - 1.0));
 
 	samples = avg = 0;
@@ -305,10 +312,12 @@ static void calibrate_cpu_clock(void)
 	cycles_per_usec = avg;
 	inv_cycles_per_usec = 16777216UL / cycles_per_usec;
 	dprint(FD_TIME, "inv_cycles_per_usec=%lu\n", inv_cycles_per_usec);
+	return 0;
 }
 #else
-static void calibrate_cpu_clock(void)
+static int calibrate_cpu_clock(void)
 {
+	return 1;
 }
 #endif
 
@@ -343,7 +352,9 @@ void fio_clock_init(void)
 #endif
 
 	fio_clock_source_inited = fio_clock_source;
-	calibrate_cpu_clock();
+
+	if (calibrate_cpu_clock())
+		tsc_reliable = 0;
 
 	/*
 	 * If the arch sets tsc_reliable != 0, then it must be good enough
@@ -481,6 +492,13 @@ static void *clock_thread_fn(void *data)
 	}
 
 	log_info("cs: cpu%3d: %lu clocks seen\n", t->cpu, t->entries[CLOCK_ENTRIES - 1].tsc - t->entries[0].tsc);
+	/*
+	 * The most common platform clock breakage is returning zero
+	 * indefinitely. Check for that and return failure.
+	 */
+	if (!t->entries[CLOCK_ENTRIES - 1].tsc && !t->entries[0].tsc)
+		return (void *) 1;
+
 	return NULL;
 }
 
diff --git a/os/windows/install.wxs b/os/windows/install.wxs
index 5b4b939..37216b4 100755
--- a/os/windows/install.wxs
+++ b/os/windows/install.wxs
@@ -30,16 +30,19 @@
 							<File KeyPath="yes" Source="..\..\pthreadGC2.dll"/>
 						</Component>
 						<Component>
-							<File Id="README" Name="README.rtf" Source="..\..\README"/>
+							<File Id="README" Name="README.txt" Source="..\..\README"/>
 						</Component>
 						<Component>
-							<File Id="REPORTING_BUGS" Name="REPORTING-BUGS.rtf" Source="..\..\REPORTING-BUGS"/>
+							<File Id="REPORTING_BUGS" Name="REPORTING-BUGS.txt" Source="..\..\REPORTING-BUGS"/>
 						</Component>
 						<Component>
-							<File Id="HOWTO" Name="HOWTO.rtf" Source="..\..\HOWTO"/>
+							<File Id="HOWTO" Name="HOWTO.txt" Source="..\..\HOWTO"/>
 						</Component>
 						<Component>
-							<File Id="COPYING" Name="COPYING.rtf" Source="..\..\COPYING"/>
+							<File Id="COPYING" Name="COPYING.txt" Source="..\..\COPYING"/>
+						</Component>
+						<Component>
+							<File Id="LICENSE" Name="LICENSE.txt" Source="..\..\LICENSE"/>
 						</Component>
 						<Directory Id="examples" Name="examples"/>
 					</Directory>
@@ -54,13 +57,14 @@
 		<ComponentRef Id="README"/>
 		<ComponentRef Id="REPORTING_BUGS"/>
 		<ComponentRef Id="COPYING"/>
+		<ComponentRef Id="LICENSE"/>
 		<ComponentGroupRef Id="examples"/>
 	</Feature>
 
 	<Property Id="ARPURLINFOABOUT" Value="http://git.kernel.dk/?p=fio.git"; />
 	<Property Id='ARPCONTACT'>fio@xxxxxxxxxxxxxxx</Property>
 	<Property Id='ARPHELPLINK'>http://www.spinics.net/lists/fio/</Property>
-	<Property Id='ARPURLUPDATEINFO'>http://git.kernel.dk/?p=fio.git</Property>
+	<Property Id='ARPURLUPDATEINFO'>http://bluestop.org/fio/</Property>
 
 	<WixVariable Id="WixUILicenseRtf" Value="eula.rtf" />
 
--
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