ten thousand small processes

Chuck Swiger cswiger at mac.com
Sat Jun 28 11:13:34 PDT 2003

D. J. Bernstein wrote:
> Chuck Swiger writes:
>> If you'd like to implement your suggested changes, generate a patch 
>> (preferably via 'diff -duw'), you may either submit it as a PR via the 
>> 'send-pr' command, or you can post it to this list.  It would be nice if 
>> you performed some regression testing to confirm that your change works and 
>> is beneficial not just for your specific circumstances, but for the general 
>> case as well.
> Does FreeBSD have a suite of regression tests and speed tests, or would
> I have to make them up as I go along?

The FreeBSD makefile system will pass "make test" or "make check" to software 
components which include such regression tests: that would apply to most of the 
GNU stuff in /usr/src/gnu/*/* and anything in the ports collection which you're 
familiar with.  Timing the regression tests for gawk, flex, perl, python, etc 
would make a good starting point.

A significantly more expensive regression test would be to follow the 
instructions in "man release" against RELENG_4_8_0_RELEASE with MAKE_ISOS 
enabled, and see whether the md5 checksums match.  Should be yes, this is just a 
preliminary step to verify that you can run the system-wide self-hosted build 
and reproduce a known-valid result.  And time this, if you please, say via 
"nohup time make release RELEASETAG=RELENG_4_8_0_RELEASE ... "

Lather, rinse, repeat, only this time point "make release" against a CVS 
repository containing your change and see whether your modified version of 
malloc works in the sense that the build creates a working version of FreeBSD 
that you can burn to CD and install from, presumably with all file checksums 
except /usr/lib/libc.* identical?  (ISO md5's won't match due to that.)

Also see whether the build goes faster, which would indicate that the change to 
malloc() had a net positive effect over the set of small command-line utilities 
like sh, make, cc, awk, sed, etc...things which more closely resemble the 
Subject header of this thread than, say, Mozilla, emacs, X window managers, etc.


PS: "make release" will involve probably 20-40 hours of CPU time and probably 10 
GB of free space, but a change to something as critical as malloc() means that 
someone is going to perform the full regression.  Or so I would expect...

More information about the freebsd-performance mailing list