# Sample configuration file for the reaim workload
# cliff white, OSDL 4/2003
#
# This is a comment (duh)
# all variables are named in UPPER CASE, unless you want
# to write a better option parser. Send me a patch
# I'm keeping this, but not used yet
#
# The file and poolsize values can be specified here, or
# in the workfile. Values in the workfile will over write
# these values
FILESIZE 10k
POOLSIZE 1m
# 
# A list of disk directories for the exerciser
# DISKDIR /tmp/diskdir
# To control number of users
# STARTUSERS 2
# ENDUSERS 3
# and to control the count
# INCREMENT 2
# Number of jobs per child
# JOBS 20
# All switch options will use '1' for on, anything else for off
# Extra output
# VERBOSE 1
# Switch for the crossover
# CROSSOVER 1
# Switch for STP-style results file
# BRIEF 1
