6624946 filemicro_* workloads need some love
authorek110237
Mon, 31 Mar 2008 15:48:10 -0700
changeset 6333 42f4f9c81ff6
parent 6332 dadc7256ed0f
child 6334 950d3f34a725
6624946 filemicro_* workloads need some love 6626167 go_filebench dumps a core with filereader 6639962 singlestreamwrite*.f should not mention filesize
usr/src/cmd/filebench/common/filebench.h
usr/src/cmd/filebench/common/threadflow.c
usr/src/cmd/filebench/config/filemicro.prof
usr/src/cmd/filebench/workloads/filemicro_create.f
usr/src/cmd/filebench/workloads/filemicro_createfiles.f
usr/src/cmd/filebench/workloads/filemicro_createrand.f
usr/src/cmd/filebench/workloads/filemicro_delete.f
usr/src/cmd/filebench/workloads/filemicro_rread.f
usr/src/cmd/filebench/workloads/filemicro_rwrite.f
usr/src/cmd/filebench/workloads/filemicro_rwritedsync.f
usr/src/cmd/filebench/workloads/filemicro_rwritefsync.f
usr/src/cmd/filebench/workloads/filemicro_seqread.f
usr/src/cmd/filebench/workloads/filemicro_seqwrite.f
usr/src/cmd/filebench/workloads/filemicro_seqwriterand.f
usr/src/cmd/filebench/workloads/filemicro_writefsync.f
usr/src/cmd/filebench/workloads/singlestreamwrite.f
usr/src/cmd/filebench/workloads/singlestreamwritedirect.f
--- a/usr/src/cmd/filebench/common/filebench.h	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/common/filebench.h	Mon Mar 31 15:48:10 2008 -0700
@@ -109,7 +109,7 @@
 #define	MIN(x, y) ((x) < (y) ? (x) : (y))
 #endif
 
-#define	FILEBENCH_VERSION	"1.2.2"
+#define	FILEBENCH_VERSION	"1.2.3"
 #define	FILEBENCHDIR	"/usr/benchmarks/filebench"
 #define	FILEBENCH_PROMPT	"filebench> "
 #define	MAX_LINE_LEN	1024
--- a/usr/src/cmd/filebench/common/threadflow.c	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/common/threadflow.c	Mon Mar 31 15:48:10 2008 -0700
@@ -200,13 +200,13 @@
 	(void) ipc_mutex_unlock(&filebench_shm->threadflow_lock);
 
 	while (threadflow) {
-		void *status;
+		/* wait for all threads to finish */
+		if (threadflow->tf_tid) {
+			void *status;
 
-		/* wait for all threads to finish */
-		if (threadflow->tf_tid)
-			(void) pthread_join(threadflow->tf_tid, &status);
-
-		ret |= *(int *)status;
+			if (pthread_join(threadflow->tf_tid, &status) == 0)
+				ret += *(int *)status;
+		}
 		threadflow = threadflow->tf_next;
 	}
 
--- a/usr/src/cmd/filebench/config/filemicro.prof	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/config/filemicro.prof	Mon Mar 31 15:48:10 2008 -0700
@@ -19,120 +19,74 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
 DEFAULTS {
-	runtime = 3600;
+	runtime = 60;
         dir = /tmp;
         stats = /tmp;
 	filesystem = tmpfs;
 	description = "filemicro tmpfs";
 }
 
-CONFIG createfiles {
-	personality = createfiles;
+CONFIG createandalloc {
 	function = generic;
-	nfiles = 1000;
-	dirwidth = 20;
-	filesize = 16k;
-	nthreads = 16;
-}
-
-CONFIG copyfiles {
-	function = generic;
-	personality = copyfiles;
-	filesize = 16k;
-	nthreads = 16;
-	nfiles = 10000;
-	dirwidth = 20;
+	personality = filemicro_create;
 }
 
-CONFIG deletefiles {
-	function = generic;
-	personality = deletefiles;
-	filesize = 16k;
-	nthreads = 16;
-	nfiles = 50000;
-	meandirwidth = 20;
-}
-
-CONFIG createandalloc128k {
+CONFIG createandallocsync {
 	function = generic;
 	personality = filemicro_create;
-	nthreads = 1;
-	iosize = 1m;
-	count = 64;
-	nfiles = 1000;
-}
-
-CONFIG createallocsync {
-	function = generic;
-	personality = filemicro_create;
-	nthreads = 1;
-	iosize = 1m;
-	count = 1k;
-	sync = 1;
+	sync = true;
 }
 
 CONFIG createallocfsync {
 	function = generic;
 	personality = filemicro_writefsync;
-	nthreads = 1;
 }
 
 CONFIG createallocappend {
 	function = generic;
 	personality = filemicro_createrand;
-	nthreads = 1;
 }
 
 CONFIG randread2k {
 	function = generic;
 	personality = filemicro_rread;
-	cached = 0;
-	iosize = 2k;
 }
 
 CONFIG randread2kcached {
 	function = generic;
 	personality = filemicro_rread;
-	cached = 1;
-	iosize = 2k;
+	cached = true;
 }
 
 CONFIG randwrite2ksync {
 	function = generic;
 	personality = filemicro_rwrite;
-	iosize = 2k;
-	nthreads = 1;
-	sync = 1;
+	sync = true;
 }
 
 CONFIG randwrite2ksync4thread {
 	function = generic;
 	personality = filemicro_rwrite;
-	iosize = 2k;
 	nthreads = 4;
-	sync = 1;
+	sync = true;
 }
 
 CONFIG randwrite8kfsynccached {
 	function = generic;
 	personality = filemicro_rwritefsync;
-	iosize = 8k;
-	nthreads = 1;
-	cached = 1;
+	cached = true;
 }
 
 CONFIG seqread32k {
 	function = generic;
 	personality = filemicro_seqread;
 	iosize = 32k;
-	nthreads = 1;
-	cached = 0;
 	filesize = 100m;
 }
 
@@ -140,48 +94,50 @@
 	function = generic;
 	personality = filemicro_seqread;
 	iosize = 32k;
-	nthreads = 1;
-	cached = 1;
 	filesize = 100m;
+	cached = true;
 }
 
 CONFIG seqwrite32k {
 	function = generic;
 	personality = filemicro_seqwrite;
 	iosize = 32k;
-	count = 32k;
-	nthreads = 1;
-	cached = 0;
-	sync = 0;
 }
 
 CONFIG seqwrite32kdsync {
 	function = generic;
 	personality = filemicro_seqwrite;
 	iosize = 32k;
-	count = 32k;
-	nthreads = 1;
-	cached = 0;
-	sync = 1;
+	sync = true;
 }
 
 CONFIG seqwriterand8k {
 	function = generic;
 	personality = filemicro_seqwriterand;
-	iosize = 8k;
-	count = 128k;
-	nthreads = 1;
-	cached = 0;
-	sync = 0;
 }
 
 CONFIG unlink1g {
 	function = generic;
 	personality = filemicro_delete;
 	nthreads = 1;
-	filesize = 1g;
-	nfiles = 10;
+}
+
+CONFIG createfiles {
+	function = generic;
+	personality = filemicro_createfiles;
 }
 
+CONFIG rwritedsync {
+	function = generic;
+	personality = filemicro_rwritedsync;
+}
 
+CONFIG filemicro_seqwriterandvargam {
+	function = generic;
+	personality = filemicro_seqwriterandvargam;
+}
 
+CONFIG filemicro_seqwriterandvartab {
+	function = generic;
+	personality = filemicro_seqwriterandvartab;
+}
--- a/usr/src/cmd/filebench/workloads/filemicro_create.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_create.f	Mon Mar 31 15:48:10 2008 -0700
@@ -19,32 +19,35 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
+# Simple way to create a file.  Start off with a zero length file, and issue
+# 1024 ($count) 1MB appends.
+
 set $dir=/tmp
-set $nthreads=1
-set $iosize=1m
 set $count=1024
-set $sync=0
+set $iosize=1m
+set $nthreads=1
+set $sync=false
 
-define fileset name=bigfileset,path=$dir,size=0,entries=128,dirwidth=1024,prealloc=100
+define file name=largefile,path=$dir,size=0,prealloc
 
 define process name=filecreater,instances=1
 {
   thread name=filecreaterthread,memsize=10m,instances=$nthreads
   {
-    flowop appendfile name=append-file,filesetname=bigfileset,dsync=$sync,iosize=$iosize,fd=1
+    flowop appendfile name=append-file,filename=largefile,dsync=$sync,iosize=$iosize
     flowop finishoncount name=finish,value=$count
   }
 }
 
-echo  "FileMicro-Create Version 2.0 personality successfully loaded"
+echo  "FileMicro-Create Version 2.1 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
+usage "       set \$count=<value>    defaults to $count"
 usage "       set \$iosize=<size>    defaults to $iosize"
-usage "       set \$count=<value>    defaults to $count"
 usage "       set \$nthreads=<value> defaults to $nthreads"
 usage "       set \$sync=<bool>      defaults to $sync"
 usage " "
--- a/usr/src/cmd/filebench/workloads/filemicro_createfiles.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_createfiles.f	Mon Mar 31 15:48:10 2008 -0700
@@ -19,18 +19,26 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
+# Creates a fileset with 20,000 entries ($nfiles), but only preallocates
+# 50% of the files.  Each file's size is set via a gamma distribution with
+# a median size of 1KB ($filesize).
+#
+# The single thread then creates a new file and writes the whole file with
+# 1MB I/Os.  The thread stops after 5000 files ($count/num of flowops) have
+been created and written to.
+
 set $dir=/tmp
-set $nfiles=20000
-set $meandirwidth=100000
+set $count=15000
 set $filesize=1k
 set $iosize=1m
+set $meandirwidth=100000
+set $nfiles=20000
 set $nthreads=1
-set $count=5000
 
 define fileset name=bigfileset,path=$dir,size=$filesize,entries=$nfiles,dirwidth=$meandirwidth,prealloc=50
 
@@ -45,12 +53,13 @@
   }
 }
 
-echo  "FileMicro-Createfiles Version 2.1 personality successfully loaded"
+echo  "FileMicro-Createfiles Version 2.2 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
-usage "       set \$filesize=<size>    defaults to $filesize"
-usage "       set \$iosize=<size>      defaults to $iosize"
-usage "       set \$nfiles=<value>     defaults to $nfiles"
-usage "       set \$count=<value>      defaults to $count"
-usage "       set \$nthreads=<value>   defaults to $nthreads"
+usage "       set \$count=<value>        defaults to $count"
+usage "       set \$filesize=<size>      defaults to $filesize"
+usage "       set \$iosize=<size>        defaults to $iosize"
+usage "       set \$meandirwidth=<value> defaults to $meandirwidth"
+usage "       set \$nfiles=<value>       defaults to $nfiles"
+usage "       set \$nthreads=<value>     defaults to $nthreads"
 usage " "
 usage "       run runtime (e.g. run 60)"
--- a/usr/src/cmd/filebench/workloads/filemicro_createrand.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_createrand.f	Mon Mar 31 15:48:10 2008 -0700
@@ -19,41 +19,40 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-#  3- open() and allocation of a 1GB file with write()
-#     of size picked uniformly in [1K,8K] range and issuing
-#     fsync() every 10MB.
-#     fm_create8k
-
+# Single threaded asynchronous ($sync) random appends (random I/Os
+# in the range of [1B - 1MB]) to a 1GB file.
+# Does a fsync after 10 ($iters) appends.
+# Stops after 1GB ($bytes) has been appended/written.
 
 set $dir=/tmp
-set $nthreads=1
+set $bytes=1g
 set $iosize=1m
-set $count=1280
-set $bytes=1g
-set $sync=0
+set $iters=10
+set $nthreads=1
+set $sync=false
 
-define fileset name=bigfileset,path=$dir,size=0,entries=128,dirwidth=1024,prealloc=100
+define file name=largefile,path=$dir,size=0,prealloc
 
 define process name=filecreater,instances=1
 {
   thread name=filecreaterthread,memsize=10m,instances=$nthreads
   {
-    flowop appendfilerand name=append-file,filesetname=bigfileset,dsync=$sync,iosize=$iosize,fd=1
-    flowop fsync name=sync,fd=1
+    flowop appendfilerand name=append-file,filename=largefile,dsync=$sync,iosize=$iosize,iters=$iters
+    flowop fsync name=sync
     flowop finishonbytes name=finish,value=$bytes
   }
 }
 
-echo  "FileMicro-CreateRand Version 2.0 personality successfully loaded"
+echo  "FileMicro-CreateRand Version 2.1 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
+usage "       set \$bytes=<value>    defaults to $bytes"
 usage "       set \$iosize=<size>    defaults to $iosize"
-usage "       set \$bytes=<value>    defaults to $bytes"
-usage "       set \$count=<value>    defaults to $count"
+usage "       set \$iters=<value>    defaults to $iters"
 usage "       set \$nthreads=<value> defaults to $nthreads"
 usage "       set \$sync=<bool>      defaults to $sync"
 usage " "
--- a/usr/src/cmd/filebench/workloads/filemicro_delete.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_delete.f	Mon Mar 31 15:48:10 2008 -0700
@@ -24,18 +24,21 @@
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-# delete 1000 files
+# Create a fileset of 50,000 entries ($nfiles), where each file's size is set
+# via a gamma distribution with the median size of 16KB ($filesize).
+# Fire off 16 threads ($nthreads), where each thread stops after
+# deleting 1000 ($count) files.
 
 set $dir=/tmp
-set $nfiles=50000
-set $meandirwidth=100
+set $count=1000
 set $filesize=16k
+set $nfiles=5000
+set $meandirwidth=100
 set $nthreads=16
-set $count=1000
 
 set mode quit alldone
 
-define fileset name=bigfileset,path=$dir,size=$filesize,entries=$nfiles,dirwidth=$meandirwidth,prealloc=100
+define fileset name=bigfileset,path=$dir,size=$filesize,entries=$nfiles,dirwidth=$meandirwidth,prealloc=100,paralloc
 
 define process name=filedelete,instances=1
 {
@@ -47,13 +50,13 @@
   }
 }
 
-echo  "FileMicro-Delete Version 2.1 personality successfully loaded"
+echo  "FileMicro-Delete Version 2.2 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
+usage "       set \$count=<value>       defaults to $count"
 usage "       set \$filesize=<size>     defaults to $filesize"
 usage "       set \$nfiles=<value>      defaults to $nfiles"
+usage "       set \$meandirwidth=<size> defaults to $meandirwidth"
 usage "       set \$nthreads=<value>    defaults to $nthreads"
-usage "       set \$count=<value>       defaults to $count"
-usage "       set \$meandirwidth=<size> defaults to $meandirwidth"
 usage "(sets mean dir width and dir depth is calculated as log (width, nfiles)"
 usage " "
 usage "       run"
--- a/usr/src/cmd/filebench/workloads/filemicro_rread.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_rread.f	Mon Mar 31 15:48:10 2008 -0700
@@ -24,13 +24,16 @@
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
+# Single threaded random reads (2KB I/Os) on a 1GB file.
+# Stops after 128MB ($bytes) has been read.
+
 set $dir=/tmp
-set $nthreads=1
-set $iosize=2k
 set $bytes=128m
-set $iters=1
+set $cached=false
 set $filesize=1g
-set $cached=false
+set $iosize=2k
+set $iters=1
+set $nthreads=1
 
 define file name=bigfile1,path=$dir,size=$filesize,prealloc,reuse,cached=$cached
 
@@ -43,11 +46,12 @@
   }
 }
 
-echo  "FileMicro-ReadRand Version 2.1 personality successfully loaded"
+echo  "FileMicro-ReadRand Version 2.2 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
 usage "       set \$bytes=<value>     defaults to $bytes"
 usage "       set \$cached=<bool>     defaults to $cached"
 usage "       set \$filesize=<size>   defaults to $filesize"
+usage "       set \$iters=<value>     defaults to $iters"
 usage "       set \$iosize=<size>     defaults to $iosize"
 usage "       set \$nthreads=<value>  defaults to $nthreads"
 usage " "
--- a/usr/src/cmd/filebench/workloads/filemicro_rwrite.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_rwrite.f	Mon Mar 31 15:48:10 2008 -0700
@@ -19,21 +19,22 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-# 10- 128M worth of 2K write(2) (to random offset), open with
-#     O_DSYNC, uncached.
+# Single threaded asynchronous ($sync) random writes (2KB I/Os) on a 1GB file.
+# Stops when 128MB ($bytes) has been written.
 
 set $dir=/tmp
-set $nthreads=1
+set $bytes=128m
+set $cached=false
+set $filesize=1g
 set $iosize=2k
-set $bytes=128m
 set $iters=1
-set $cached=0
-set $filesize=1g
+set $nthreads=1
+set $sync=false
 
 define file name=bigfile1,path=$dir,size=$filesize,prealloc,reuse,cached=$cached
 
@@ -41,17 +42,19 @@
 {
   thread name=filewriterthread,memsize=10m,instances=$nthreads
   {
-    flowop write name=write-file,filename=bigfile1,random,dsync,iosize=$iosize,iters=$iters
+    flowop write name=write-file,filename=bigfile1,random,dsync=$sync,iosize=$iosize,iters=$iters
     flowop finishonbytes name=finish,value=$bytes
   }
 }
 
-echo  "FileMicro-WriteRandDsync Version 2.0 personality successfully loaded"
+echo  "FileMicro-WriteRand Version 2.1 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
+usage "       set \$bytes=<value>    defaults to $bytes"
+usage "       set \$cached=<bool>    defaults to $cached"
 usage "       set \$filesize=<size>  defaults to $filesize"
 usage "       set \$iosize=<size>    defaults to $iosize"
-usage "       set \$bytes=<value>    defaults to $bytes"
-usage "       set \$cached=<value>   defaults to $cached"
+usage "       set \$iters=<value>    defaults to $iters"
 usage "       set \$nthreads=<value> defaults to $nthreads"
+usage "       set \$sync=<bool>      defaults to $sync"
 usage " "
 usage "       run runtime (e.g. run 60)"
--- a/usr/src/cmd/filebench/workloads/filemicro_rwritedsync.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_rwritedsync.f	Mon Mar 31 15:48:10 2008 -0700
@@ -19,37 +19,38 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-# 128M worth of random 8K-aligned write(2) to a 1G file; followed by fsync(); cached.
+# Single threaded synchronous (O_DSYNC) random writes (2KB I/Os) on a 1GB file.
+# Stops when 64K ($count) writes have been done.
 
 set $dir=/tmp
-set $nthreads=1
-set $iosize=2k
 set $count=65536
 set $filesize=1g
+set $iosize=2k
 set $iters=1
+set $nthreads=1
 
-define fileset name=bigfile,path=$dir,size=$filesize,entries=$nthreads,dirwidth=1024,prealloc
+define file name=bigfile,path=$dir,size=$filesize,prealloc,reuse
 
 define process name=filewriter,instances=1
 {
   thread name=filewriterthread,memsize=10m,instances=$nthreads
   {
-    flowop write name=write-file,filesetname=bigfile,random,dsync,iosize=$iosize,fd=1,iters=$iters
+    flowop write name=write-file,filename=bigfile,random,dsync,iosize=$iosize,iters=$iters
     flowop finishoncount name=finish,value=$count
   }
 }
 
-echo  "FileMicro-WriteRandFsync Version 2.0 personality successfully loaded"
+echo  "FileMicro-WriteRandDsync Version 2.1 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
+usage "       set \$count=<value>    defaults to $count"
 usage "       set \$filesize=<size>  defaults to $filesize"
 usage "       set \$iosize=<size>    defaults to $iosize"
-usage "       set \$count=<value>    defaults to $count"
+usage "       set \$iters=<value>    defaults to $iters"
 usage "       set \$nthreads=<value> defaults to $nthreads"
-usage "       set \$iters=<value>    defaults to $iters"
 usage " "
 usage "       run runtime (e.g. run 60)"
--- a/usr/src/cmd/filebench/workloads/filemicro_rwritefsync.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_rwritefsync.f	Mon Mar 31 15:48:10 2008 -0700
@@ -19,38 +19,42 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-# 128M worth of random 8K-aligned write(2) to a 1G file; followed by fsync(); cached.
+# Single threaded asynchronous random writes (8KB I/Os) on a 1GB file.
+# A fsync is issued after 16K ($iters) worth of writes.
+# Stops after one ($count) fsync.
 
 set $dir=/tmp
-set $nthreads=1
+set $cached=false
+set $count=1
+set $filesize=1g
 set $iosize=8k
-set $count=1
 set $iters=16384
-set $filesize=1g
-set $cached=0
+set $nthreads=1
 
-define fileset name=bigfileset,path=$dir,size=$filesize,entries=$nthreads,dirwidth=1024,prealloc=100,cached=$cached
+define file name=bigfile,path=$dir,size=$filesize,prealloc,cached=$cached
 
 define process name=filewriter,instances=1
 {
   thread name=filewriterthread,memsize=10m,instances=$nthreads
   {
-    flowop write name=write-file,filesetname=bigfileset,random,iosize=$iosize,fd=1,iters=$iters
-    flowop fsync name=sync-file,fd=1
+    flowop write name=write-file,filename=bigfile,random,iosize=$iosize,iters=$iters
+    flowop fsync name=sync-file
     flowop finishoncount name=finish,value=$count
   }
 }
 
-echo  "FileMicro-WriteRandFsync Version 2.0 personality successfully loaded"
+echo  "FileMicro-WriteRandFsync Version 2.1 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
+usage "       set \$cached=<bool>    defaults to $cached"
+usage "       set \$count=<value>    defaults to $count"
+usage "       set \$filesize=<size>  defaults to $filesize"
 usage "       set \$iosize=<size>    defaults to $iosize"
-usage "       set \$count=<value>    defaults to $count"
+usage "       set \$iters=<value>    defaults to $iters"
 usage "       set \$nthreads=<value> defaults to $nthreads"
-usage "       set \$cached=<value>   defaults to $cached"
 usage " "
 usage "       run runtime (e.g. run 60)"
--- a/usr/src/cmd/filebench/workloads/filemicro_seqread.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_seqread.f	Mon Mar 31 15:48:10 2008 -0700
@@ -19,35 +19,34 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-# 4- Sequential read(32K) of a 1G file, cached 
-# 5- Sequential read(32K) of a 1G file, uncached 
+# Single threaded sequential reads (1MB I/Os) on a 1G file.
 
 set $dir=/tmp
-set $nthreads=1
-set $iosize=1m
+set $cached=false
 set $filesize=1g
-set $cached=0
+set $iosize=1m
+set $nthreads=1
 
-define fileset name=bigfileset,path=$dir,size=$filesize,entries=$nthreads,dirwidth=1024,prealloc=100,cached=$cached
+define file name=largefile,path=$dir,size=$filesize,prealloc,reuse,cached=$cached
 
 define process name=filereader,instances=1
 {
   thread name=filereaderthread,memsize=10m,instances=$nthreads
   {
-    flowop read name=append-file,filesetname=bigfileset,iosize=$iosize,fd=1
+    flowop read name=seqread-file,filename=largefile,iosize=$iosize
   }
 }
 
-echo  "FileMicro-SeqRead Version 2.0 personality successfully loaded"
+echo  "FileMicro-SeqRead Version 2.1 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
+usage "       set \$cached=<bool>    defaults to $cached"
+usage "       set \$filesize=<size>  defaults to $filesize"
 usage "       set \$iosize=<size>    defaults to $iosize"
-usage "       set \$filesize=<size>  defaults to $filesize"
 usage "       set \$nthreads=<value> defaults to $nthreads"
-usage "       set \$cached=<bool>    defaults to $cached"
 usage " "
 usage "       run runtime (e.g. run 60)"
--- a/usr/src/cmd/filebench/workloads/filemicro_seqwrite.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_seqwrite.f	Mon Mar 31 15:48:10 2008 -0700
@@ -24,29 +24,29 @@
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-# 4- Sequential write(32K) of a 1G file, cached 
-# 5- Sequential write(32K) of a 1G file, uncached 
+# Single threaded asynchronous ($sync) sequential writes (1MB I/Os) to
+# a 1GB file.
+# Stops after 1 series of 1024 ($count) writes has been done.
 
 set $dir=/tmp
-set $cached=0
-set $count=1000
+set $cached=false
+set $count=1024
 set $iosize=1m
 set $nthreads=1
 set $sync=false
 
-define fileset name=bigfileset,path=$dir,size=0,entries=$nthreads,dirwidth=1024,prealloc=100,cached=$cached
+define file name=bigfile,path=$dir,size=0,prealloc,cached=$cached
 
 define process name=filewriter,instances=1
 {
   thread name=filewriterthread,memsize=10m,instances=$nthreads
   {
-    flowop appendfile name=write-file,dsync=$sync,filesetname=bigfileset,iosize=$iosize,fd=1,iters=$count
-    flowop closefile name=close,fd=1
+    flowop appendfile name=write-file,dsync=$sync,filename=bigfile,iosize=$iosize,iters=$count
     flowop finishoncount name=finish,value=1
   }
 }
 
-echo  "FileMicro-SeqWrite Version 2.1 personality successfully loaded"
+echo  "FileMicro-SeqWrite Version 2.2 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
 usage "       set \$cached=<bool>    defaults to $cached"
 usage "       set \$count=<value>    defaults to $count"
--- a/usr/src/cmd/filebench/workloads/filemicro_seqwriterand.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_seqwriterand.f	Mon Mar 31 15:48:10 2008 -0700
@@ -19,41 +19,40 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-# 7- Sequential write() of a 1G file, size picked uniformly in
-#    the [1K,8K] range, followed by close(), cached.
-
-
+# Single threaded appends/writes (I/Os of random size in the range
+# of [1B - 8KB]) to a 1GB file.
+# Stops after 128K ($count) writes have been done.
 
 set $dir=/tmp
-set $nthreads=1
+set $cached=false
+set $count=128k
 set $iosize=8k
-set $cached=0
-set $sync=0
-set $count=128k
+set $nthreads=1
+set $sync=false
 
-define fileset name=bigfileset,path=$dir,size=0,entries=$nthreads,dirwidth=1024,prealloc=100,cached=$cached
+define file name=bigfile,path=$dir,size=0,prealloc,cached=$cached
 
 define process name=filewriter,instances=1
 {
   thread name=filewriterthread,memsize=10m,instances=$nthreads
   {
-    flowop appendfilerand name=write-file,dsync=$sync,filesetname=bigfileset,iosize=$iosize,fd=1,iters=$count
+    flowop appendfilerand name=appendrand-file,dsync=$sync,filename=bigfile,iosize=$iosize,fd=1,iters=$count
     flowop closefile name=close,fd=1
     flowop finishoncount name=finish,value=1
   }
 }
 
-echo  "FileMicro-SeqWriteRand Version 2.0 personality successfully loaded"
+echo  "FileMicro-SeqWriteRand Version 2.1 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
+usage "       set \$cached=<bool>    defaults to $cached"
+usage "       set \$count=<bool>     defaults to $count"
 usage "       set \$iosize=<size>    defaults to $iosize"
 usage "       set \$nthreads=<value> defaults to $nthreads"
-usage "       set \$cached=<bool>    defaults to $cached"
-usage "       set \$count=<bool>     defaults to $cached"
-usage "       set \$sync=<bool>      defaults to $cached"
+usage "       set \$sync=<bool>      defaults to $sync"
 usage " "
 usage "       run runtime (e.g. run 60)"
--- a/usr/src/cmd/filebench/workloads/filemicro_writefsync.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/filemicro_writefsync.f	Mon Mar 31 15:48:10 2008 -0700
@@ -19,37 +19,38 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
-#  3- open() and allocation of a 1GB file with write()
-#     of size picked uniformly in [1K,8K] range and issuing
-#     fsync() every 10MB.
+# Single threaded appends/writes (8KB I/Os) to a 1GB file.
+# Each loop iteration does a fsync after 1250 ($iters) appends.
+# Stops after 128K ($count) appends have been done.
 
 set $dir=/tmp
-set $nthreads=1
+set $count=128k
 set $iosize=8k
-set $count=128k
 set $iters=1250
+set $nthreads=1
 
-define fileset name=bigfileset,path=$dir,size=0,entries=128,dirwidth=1024,prealloc=100
+define file name=bigfile,path=$dir,size=0,prealloc
 
 define process name=filecreater,instances=1
 {
   thread name=filecreaterthread,memsize=10m,instances=$nthreads
   {
-    flowop appendfile name=append-file,filesetname=bigfileset,iosize=$iosize,fd=1,iters=$iters
-    flowop fsync name=sync-file,fd=1
+    flowop appendfile name=append-file,filename=bigfile,iosize=$iosize,iters=$iters
+    flowop fsync name=sync-file
     flowop finishoncount name=finish,value=$count
   }
 }
 
-echo  "FileMicro-WriteFsync Version 2.0 personality successfully loaded"
+echo  "FileMicro-WriteFsync Version 2.1 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
+usage "       set \$count=<value>    defaults to $count"
 usage "       set \$iosize=<size>    defaults to $iosize"
-usage "       set \$count=<value>    defaults to $count"
+usage "       set \$iters=<value>    defaults to $iters"
 usage "       set \$nthreads=<value> defaults to $nthreads"
 usage " "
 usage "       run runtime (e.g. run 60)"
--- a/usr/src/cmd/filebench/workloads/singlestreamwrite.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/singlestreamwrite.f	Mon Mar 31 15:48:10 2008 -0700
@@ -19,15 +19,15 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
 set $dir=/tmp
-set $nthreads=1
+set $directio=false
 set $iosize=1m
-set $directio=0
+set $nthreads=1
 
 define file name=largefile1,path=$dir,prealloc
 
@@ -40,11 +40,10 @@
   }
 }
 
-echo  "Single Stream Write Version 2.1 personality successfully loaded"
+echo  "Single Stream Write Version 2.2 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
-usage "       set \$filesize=<size>    defaults to $filesize"
+usage "       set \$directio=<bool>    defaults to $directio"
+usage "       set \$iosize=<value>     defaults to $iosize"
 usage "       set \$nthreads=<value>   defaults to $nthreads"
-usage "       set \$iosize=<value> defaults to $iosize"
-usage "       set \$directio=<value> defaults to $directio"
 usage " "
 usage "       run runtime (e.g. run 60)"
--- a/usr/src/cmd/filebench/workloads/singlestreamwritedirect.f	Mon Mar 31 15:38:47 2008 -0700
+++ b/usr/src/cmd/filebench/workloads/singlestreamwritedirect.f	Mon Mar 31 15:48:10 2008 -0700
@@ -19,14 +19,14 @@
 # CDDL HEADER END
 #
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 # ident	"%Z%%M%	%I%	%E% SMI"
 
 set $dir=/tmp
+set $iosize=1m
 set $nthreads=1
-set $iosize=1m
 
 define file name=largefile1,path=$dir,prealloc
 
@@ -39,10 +39,9 @@
   }
 }
 
-echo  "Single Stream Write Version 2.1 personality successfully loaded"
+echo  "Single Stream Write Version 2.2 personality successfully loaded"
 usage "Usage: set \$dir=<dir>"
-usage "       set \$filesize=<size>    defaults to $filesize"
+usage "       set \$iosize=<value> defaults to $iosize"
 usage "       set \$nthreads=<value>   defaults to $nthreads"
-usage "       set \$iosize=<value> defaults to $iosize"
 usage " "
 usage "       run runtime (e.g. run 60)"