Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Sep 1997 21:42:04 +0200
From:      Poul-Henning Kamp <phk@critter.freebsd.dk>
To:        Nate Williams <nate@mt.sri.com>
Cc:        current@freebsd.org
Subject:   Re: New timeout capability (was Re: cvs commit:....) 
Message-ID:  <899.874957324@critter.freebsd.dk>
In-Reply-To: Your message of "Mon, 22 Sep 1997 13:10:31 MDT." <199709221910.NAA02147@rocky.mt.sri.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <199709221910.NAA02147@rocky.mt.sri.com>, Nate Williams writes:

>Can you explain a bit more about your 'rover' setup, and how it's used?

The "rover" in my lab is named after it's more adventurous namesake
on Mars.  Basically it's a machine (K6/233, 64M, Ahc, Quantum Atlas),
which will repeatedly run through this (vastly simplified) loop:

	boot diskless
	dd if=/dev/rsd1a of=/dev/rsd0a bs=64k
	mount /dev/sd0a /mnt
	#setup /etc/rc to run experiment
	umount /mnt
	reboot from disk
	#run experiment in /etc/rc
	ifconfig
	gather_results | rsh server "mail phk@freebsd.org"
	reboot to diskless

The trick is that the initial condition is as similar as I can
possibly make it.  That way I have gotten very low spread on
my measurements and consequently often found that just one
shot would be statistically significant, although I don't anticipate
running less than three shots on any one experiment.

The results gathered after the run includes the output of "time -l",
"dmesg" output (to watch for errors) and a "sysctl -a" output.  But
any command can be run of course.

My current reference measurement is a make world with the standard
kernel.GENERIC as shipped in the snapshot distribution:

10 samples
     avg    stddev  stddev/avg      min  -stddev      avg  +stddev      max
---------------------------------------------------------------------------
 9011.84      6.11    0.000678  9003.66  9005.73  9011.84  9017.95  9023.14 
 4549.31      4.16    0.000915  4540.18  4545.15  4549.31  4553.48  4554.99 
 1305.56      3.90    0.002985  1300.22  1301.66  1305.56  1309.46  1311.60 
 5854.87      5.83    0.000996  5847.87  5849.04  5854.87  5860.71  5862.61 
 3156.97      4.79    0.001518  3149.34  3152.18  3156.97  3161.76  3165.07 
---------------------------------------------------------------------------

The five rows of data are: real, user, sys, (user+sys), (real-user-sys)

My current row of experiments are targeted at quantifying various
features and variables impact on a make world.  My general studylist 
looks like this at this time:

	Kernel = {kernel.GENERIC, kernel.tuned}
	MB Ram = {16 ... 64}
	__getcwd() = {enable, disable}
	debug.ncnegfactor = {2 ... 20}
	-pipe = {enable, disable}
	kern.maxvnodes = {2000 ... 8000}
	"vnode freelist relative size"
	mount /usr/obj -o async = {yes, no}
	APM = {On, Off}
	Statclock freq = {128, 256, 512, 1024}
	AHC_TAGENABLE = {yes, no}
	AHC_SCBPAGING = {yes, no}
	BIOS parameters. = {...}

I also have a bunch of micro-benchmarks on the vnode/namecache to
run, but those are not of very general interest I pressume.  I 
hope to have a turnaround time of two experiments per day or so.

If you have a change you want tested, I should be able to give 
the result back to you in one or two days.  (I only ask in return
that I may publish the results in case I write a paper on this
experiment later on).

If you're wondering how it works in practice:  I have an EPROM
emulator in a old wd8003 board hooked up to the parallel port
of another computer.  Since the network interface isn't even
configured during the duration of the experiment, this old card
does not negatively impact performance.

--
Poul-Henning Kamp             FreeBSD coreteam member
phk@FreeBSD.ORG               "Real hackers run -current on their laptop."



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?899.874957324>