Odd failures during parallel PPC builds

Alexey Dokuchaev danfe at FreeBSD.org
Wed Jun 4 08:33:48 UTC 2014


On Wed, Jun 04, 2014 at 11:10:49AM +0300, Jukka Ukkonen wrote:
> On 2014-06-03 5:10, Alexey Dokuchaev wrote:
> >I normally do not build in parallel since it makes no sense on my single
> >CPU Mac mini G4, but I can loop buildworld with some -jX value to see if
> >I can catch anything.
> 
> It seems that almost every process waits for disk on occasion
> just to read in the compiled file and header files at least.
> So, having a few compiler processes active at the same time
> usually makes sense because another compilation can proceed
> while one ends up waiting for the disk. When the compiled files
> are small and the compilation does not require a lot of memory
> as is often the case with C library functions etc. the number of
> parallel jobs can obviously be a bit larger.

"make buildworld" takes around 12 hours on Mac mini G4, with 1G RAM and
tmpfs-backed OBJDIR.  I've played with couple of -jX values, it made no
observable difference.  The box is slow; and FreeBSD is not taking it to
its full potential. :(

Our libc seems to lack altivec-optimized routines on PowerPC, which is
unfortunate.  This is known to PowerPC port maintainers:

  http://lists.freebsd.org/pipermail/freebsd-ppc/2003-June/000042.html

Motorola's code is of low interest probably, due to its license (GPL?) and
the fact that it's written in assembly; I haven't check all Apple's code,
(http://www.opensource.apple.com/source/xnu/xnu-1504.9.37/osfmk/ppc/), but
e.g. bcopy.s is also written in assembly.

But there are C routines for string operations by Konstantinos Margaritis,
some of them are dual licensed (LGPL/BSD) IIRC (http://freevec.org/), but
not all.  I don't think it's hard to reimplement most of them from scratch
under BSD license though.

> When compiling large C++ files the number of jobs has to be kept low
> to avoid pointless paging on a system with limited physical memory.

Right; actually, these days building into tmpfs might no longer be optimal,
as code base had grown large enough to utilize a lot of swap space on a 1G
RAM box.

./danfe


More information about the freebsd-ppc mailing list