diff --git a/src/tools/fsync/test_fsync.c b/src/tools/fsync/test_fsync.c
index 1256d428250d518421106a0b5791f8e1c1d1f642..8a258fe7172476acd0b6cc86035bac37ed8b7732 100644
--- a/src/tools/fsync/test_fsync.c
+++ b/src/tools/fsync/test_fsync.c
@@ -1,5 +1,5 @@
 /*
- * $PostgreSQL: pgsql/src/tools/fsync/test_fsync.c,v 1.27 2010/02/26 02:01:39 momjian Exp $
+ * $PostgreSQL: pgsql/src/tools/fsync/test_fsync.c,v 1.28 2010/07/04 01:50:29 momjian Exp $
  *
  *
  *	test_fsync.c
@@ -34,6 +34,8 @@
 
 #define LABEL_FORMAT	"\t%-30s"
 
+int loops = 10000;
+
 void		die(char *str);
 void		print_elapse(struct timeval start_t, struct timeval stop_t);
 
@@ -43,8 +45,7 @@ main(int argc, char *argv[])
 	struct timeval start_t;
 	struct timeval stop_t;
 	int			tmpfile,
-				i,
-				loops = 5000;
+				i;
 	char	   *full_buf = (char *) malloc(XLOG_SEG_SIZE),
 			   *buf;
 	char	   *filename = FSYNC_FILENAME;
@@ -73,10 +74,12 @@ main(int argc, char *argv[])
 
 	buf = (char *) TYPEALIGN(ALIGNOF_XLOG_BUFFER, full_buf);
 
+	printf("Loops = %d\n\n", loops);
+
 	/*
 	 * Simple write
 	 */
-	printf("Simple 8k write timing:\n");
+	printf("Simple write timing:\n");
 	/* write only */
 	gettimeofday(&start_t, NULL);
 	for (i = 0; i < loops; i++)
@@ -88,13 +91,13 @@ main(int argc, char *argv[])
 		close(tmpfile);
 	}
 	gettimeofday(&stop_t, NULL);
-	printf(LABEL_FORMAT, "write");
+	printf(LABEL_FORMAT, "8k write");
 	print_elapse(start_t, stop_t);
 
 	/*
 	 * Compare file sync methods with one 8k write
 	 */
-	printf("\nCompare file sync methods using one 8k write:\n");
+	printf("\nCompare file sync methods using one write:\n");
 
 #ifdef OPEN_DATASYNC_FLAG
 	/* open_dsync, write */
@@ -110,7 +113,7 @@ main(int argc, char *argv[])
 	}
 	gettimeofday(&stop_t, NULL);
 	close(tmpfile);
-	printf(LABEL_FORMAT, "open_datasync write");
+	printf(LABEL_FORMAT, "open_datasync 8k write");
 	print_elapse(start_t, stop_t);
 #else
 	printf("\t(open_datasync unavailable)\n");
@@ -130,7 +133,7 @@ main(int argc, char *argv[])
 	}
 	gettimeofday(&stop_t, NULL);
 	close(tmpfile);
-	printf(LABEL_FORMAT, "open_sync write");
+	printf(LABEL_FORMAT, "open_sync 8k write");
 	print_elapse(start_t, stop_t);
 #else
 	printf("\t(open_sync unavailable)\n");
@@ -151,7 +154,7 @@ main(int argc, char *argv[])
 	}
 	gettimeofday(&stop_t, NULL);
 	close(tmpfile);
-	printf(LABEL_FORMAT, "write, fdatasync");
+	printf(LABEL_FORMAT, "8k write, fdatasync");
 	print_elapse(start_t, stop_t);
 #else
 	printf("\t(fdatasync unavailable)\n");
@@ -172,13 +175,13 @@ main(int argc, char *argv[])
 	}
 	gettimeofday(&stop_t, NULL);
 	close(tmpfile);
-	printf(LABEL_FORMAT, "write, fsync");
+	printf(LABEL_FORMAT, "8k write, fsync");
 	print_elapse(start_t, stop_t);
 
 	/*
 	 * Compare file sync methods with two 8k write
 	 */
-	printf("\nCompare file sync methods using two 8k writes:\n");
+	printf("\nCompare file sync methods using two writes:\n");
 
 #ifdef OPEN_DATASYNC_FLAG
 	/* open_dsync, write */
@@ -196,7 +199,7 @@ main(int argc, char *argv[])
 	}
 	gettimeofday(&stop_t, NULL);
 	close(tmpfile);
-	printf(LABEL_FORMAT, "open_datasync write, write");
+	printf(LABEL_FORMAT, "2 open_datasync 8k writes");
 	print_elapse(start_t, stop_t);
 #else
 	printf("\t(open_datasync unavailable)\n");
@@ -218,7 +221,7 @@ main(int argc, char *argv[])
 	}
 	gettimeofday(&stop_t, NULL);
 	close(tmpfile);
-	printf(LABEL_FORMAT, "open_sync write, write");
+	printf(LABEL_FORMAT, "2 open_sync 8k writes");
 	print_elapse(start_t, stop_t);
 #endif
 
@@ -239,7 +242,7 @@ main(int argc, char *argv[])
 	}
 	gettimeofday(&stop_t, NULL);
 	close(tmpfile);
-	printf(LABEL_FORMAT, "write, write, fdatasync");
+	printf(LABEL_FORMAT, "8k write, 8k write, fdatasync");
 	print_elapse(start_t, stop_t);
 #else
 	printf("\t(fdatasync unavailable)\n");
@@ -262,7 +265,7 @@ main(int argc, char *argv[])
 	}
 	gettimeofday(&stop_t, NULL);
 	close(tmpfile);
-	printf(LABEL_FORMAT, "write, write, fsync");
+	printf(LABEL_FORMAT, "8k write, 8k write, fsync");
 	print_elapse(start_t, stop_t);
 
 	/*
@@ -284,7 +287,7 @@ main(int argc, char *argv[])
 	}
 	gettimeofday(&stop_t, NULL);
 	close(tmpfile);
-	printf(LABEL_FORMAT, "16k open_sync write");
+	printf(LABEL_FORMAT, "open_sync 16k write");
 	print_elapse(start_t, stop_t);
 
 	/* Two 8k open_sync writes */
@@ -302,7 +305,7 @@ main(int argc, char *argv[])
 	}
 	gettimeofday(&stop_t, NULL);
 	close(tmpfile);
-	printf(LABEL_FORMAT, "2 8k open_sync writes");
+	printf(LABEL_FORMAT, "2 open_sync 8k writes");
 	print_elapse(start_t, stop_t);
 #else
 	printf("\t(open_sync unavailable)\n");
@@ -311,8 +314,9 @@ main(int argc, char *argv[])
 	/*
 	 * Fsync another file descriptor?
 	 */
-	printf("\nCompare fsync times on write() and new file descriptors (if the times\n");
-	printf("are similar, fsync() can sync data written on a different descriptor):\n");
+	printf("\nTest if fsync on non-write file descriptor is honored:\n");
+    printf("(If the times are similar, fsync() can sync data written\n");
+	printf("on a different descriptor.)\n");
 
 	/* write, fsync, close */
 	gettimeofday(&start_t, NULL);
@@ -331,7 +335,7 @@ main(int argc, char *argv[])
 		close(tmpfile);
 	}
 	gettimeofday(&stop_t, NULL);
-	printf(LABEL_FORMAT, "write, fsync, close");
+	printf(LABEL_FORMAT, "8k write, fsync, close");
 	print_elapse(start_t, stop_t);
 
 	/* write, close, fsync */
@@ -351,7 +355,7 @@ main(int argc, char *argv[])
 		close(tmpfile);
 	}
 	gettimeofday(&stop_t, NULL);
-	printf(LABEL_FORMAT, "write, close, fsync");
+	printf(LABEL_FORMAT, "8k write, close, fsync");
 	print_elapse(start_t, stop_t);
 
 	/* cleanup */
@@ -364,14 +368,19 @@ main(int argc, char *argv[])
 void
 print_elapse(struct timeval start_t, struct timeval stop_t)
 {
+	double total_time, per_second;
+
 	if (stop_t.tv_usec < start_t.tv_usec)
 	{
 		stop_t.tv_sec--;
 		stop_t.tv_usec += 1000000;
 	}
 
-	printf("%3ld.%06ld\n", (long) (stop_t.tv_sec - start_t.tv_sec),
-		   (long) (stop_t.tv_usec - start_t.tv_usec));
+	total_time = (stop_t.tv_sec - start_t.tv_sec) +
+				 (stop_t.tv_usec - start_t.tv_usec) * 0.000001;
+	per_second = loops / total_time;
+	
+	printf("%9.3f/second\n", per_second);
 }
 
 void