Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Sep 2007 13:34:34 +0200
From:      Erik Cederstrand <erik@cederstrand.dk>
To:        freebsd-performance@freebsd.org
Subject:   Optimizing "make release"
Message-ID:  <46F7A0CA.7040009@cederstrand.dk>

next in thread | raw e-mail | index | archive | help
Hi!

In an effort to run benchmarks on the latest CURRENT on a couple of 
slave machines, I need to build the distribution sets necessary for an 
NFS install as fast as possible (the slaves are installing over PXE), 
but still ending up with something as close as possible to a normal 
default installation on the slaves.

Right now, I'm doing a very basic run to create the distribution sets 
(using a default make.conf and a 6.2-STABLE build machine):

# /cd /usr/src
# csup /etc/current-supfile
# make buildworld
# cd /release
# make release BUILDNAME=CURRENT-YYYYMMDDHHMMSS CVSROOT=/home/ncvs 
CHROOTDIR=/home/chroot

Using the above commands, a lot of stuff gets compiled unnecessarily, 
and the process takes 5-6 hours on a 2GHz P4. I'd like to cut that to 2 
hours max. I tried to use some of the NO_* settings in make.conf, but 
it's not clear to me what I can omit. Some things are needed later in 
make release (e.g. NO_CXX) even though I don't need a C++ compiler on 
the slave systems. I also looked a ccache, but I consider it somewhat 
dangerous, since I need to have an absolutely correct, reproducible 
installation rather than a fast build.

If I ignore documentation distfiles (will this affect benchmarks in any 
way?), AFAICT the only distribution sets I need are base, proflibs, 
kernels and (maybe) lib32. Is there a way to get "make release" to do 
just that? I'm open to other suggestions, of course.

Thanks,
Erik



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