CFR, CFT: Fine-grained SUBDIR dependencies for parallel builds

Jia-Shiun Li jiashiun at gmail.com
Wed May 28 04:59:18 UTC 2014


It failed cleandir at libmb with -j4. Test script attached and log
snippet below.

Tested with:
- HW: i5-3450 CPU w/ 8GB memory
- /usr/obj & src mounted on tmpfs.

src uses ~1GB without .svn dir. /usr/obj uses another ~2GB for
buildworld, not including buildkernel. If memory is not constrained I
think it is easier to use tmpfs to uncover parallel timing/race issues
hidden by slower I/O.


-Jia-shiun.

--- 8< ----------------------------------------

===> cddl/usr.bin/ctfdump (cleandir)
--- bin.cleandir__D ---
--- clean ---
rm -f rcp rcp.o util.o rcp.1.gz rcp.1.cat.gz
--- lib.cleandir__D ---
--- cleanobj ---
--- libexec.cleandir__D ---
--- clean ---
rm -f rpc.sprayd sprayd.o rpc.sprayd.8.gz rpc.sprayd.8.cat.gz
--- bin.cleandir__D ---
--- cleandepend ---
rm -f .depend GPATH GRTAGS GSYMS GTAGS
--- lib.cleandir__D ---
make[3]: make[3]: don't know how to make cleandir_subdir_libmb. Stop

make[3]: stopped in /mnt/src/lib
*** [lib.cleandir__D] Error code 2

make[2]: stopped in /mnt/src
--- libexec.cleandir__D ---
--- cleandepend ---
rm -f .depend GPATH GRTAGS GSYMS GTAGS
--- bin.cleandir__D ---
--- cleanobj ---
A failure has been detected in another branch of the parallel make

make[4]: stopped in /mnt/src/bin/rcp
--- libexec.cleandir__D ---
A failure has been detected in another branch of the parallel make

make[4]: stopped in /mnt/src/libexec/rpc.sprayd
--- bin.cleandir__D ---
*** [cleandir_subdir_rcp] Error code 2

make[3]: stopped in /mnt/src/bin
1 error

make[3]: stopped in /mnt/src/bin
--- libexec.cleandir__D ---
*** [_sub.cleandir] Error code 2

make[3]: stopped in /mnt/src/libexec
1 error

make[3]: stopped in /mnt/src/libexec
*** [libexec.cleandir__D] Error code 2

make[2]: stopped in /mnt/src
--- bin.cleandir__D ---
*** [bin.cleandir__D] Error code 2

make[2]: stopped in /mnt/src
--- cddl.cleandir__D ---
A failure has been detected in another branch of the parallel make

make[5]: stopped in /mnt/src/cddl/usr.bin/ctfdump
*** [_sub.cleandir] Error code 2

make[4]: stopped in /mnt/src/cddl/usr.bin
1 error

make[4]: stopped in /mnt/src/cddl/usr.bin
*** [_sub.cleandir] Error code 2

make[3]: stopped in /mnt/src/cddl
1 error

make[3]: stopped in /mnt/src/cddl
*** [cddl.cleandir__D] Error code 2

make[2]: stopped in /mnt/src
4 errors

make[2]: stopped in /mnt/src
*** [_cleanobj] Error code 2

make[1]: stopped in /mnt/src
1 error

make[1]: stopped in /mnt/src
*** [buildworld] Error code 2

make: stopped in /mnt/src

make: stopped in /mnt/src
-------------- next part --------------
#!/bin/sh

echo ======= >> pcm.log
pcm.x 1 -csv >> pcm.log &
PID=$!

echo pid $PID

date >> build.log

make -j4 buildworld >> build.log &
PPID=$!
echo waiting...
wait $PPID

date >> build.log

kill $PID

echo done



More information about the freebsd-arch mailing list