And Here I Thought buildworld/makeworld Was IO Bound

Warren Block wblock at wonkity.com
Mon Feb 10 15:03:57 UTC 2014


On Sun, 9 Feb 2014, Tim Daneliuk wrote:

> For some years now, I have been doing nightly builds of -STABLE
> on an old Pentium D machine with 2G of memory.  Buildworld + 2
> different kernels was taking in the neighborhood of 3 1/2 hours or so
> to run.
>
> I then upgraded the Mobo/CPU to a Haswell Quadcore I5-4570 and, sure
> enough, the build time for all the above came down to 30-35 mins or so.
>
> "So", says I, "I'll bet a faster drive would help considering all the
> scribbling to the disk the compilers and makes do".  So, I upgdared to
> a Kingston SSD Now 300, 120G hard drive and he time to do the above
> went down to .... wait, it's still about 30-35 mins ????
>
> So, I've tried fiddling with different values for -j on the make
> command line to little avail.  Well, -j8 and -j16 show no real
> difference here.
>
> So is the bounding function here actually CPU not IO?  Am I missing
> something?

Yes, it mostly is CPU.  Make sure you are running powerd on that i5, it 
enables turbo mode and gives a noticeable speed increase.

Also, consider using -DNO_CLEAN, leaving all the untouched object files 
in place for make to find and skip.  I've seen buildworld times under a 
minute with that on my i5 and SSD.  There are downsides (uname is not 
always updated correctly), but removing /usr/obj every so often and 
starting from scratch will fix that.


More information about the freebsd-stable mailing list