Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Apr 2013 13:18:14 -0600
From:      Brett Glass <brett@lariat.net>
To:        questions@freebsd.org
Subject:   Bad kernel with make -j?
Message-ID:  <201304171918.NAA01649@lariat.net>

next in thread | raw e-mail | index | archive | help
Everyone:

I've just had to resurrect a machine which apparently failed 
because the kernel was built with the make -j option.

As reported in the make(1) man page, the purpose of the -j option 
is to let the make program build multiple portions of a program 
concurrently on a machine with multiple CPUs. The idea is to make 
use of SMP to speed up the build process. Unfortunately, after 
updating a FreeBSD 9.0 system with freebsd-update (and seeing some 
changes that would affect the custom kernel the machine was 
running), I rebuilt the kernel using the -j5 option. (The machine 
has 2 cores and 4 threads, but threads block due to I/O as well as 
memory access. So, when it works properly, -j5 is the fastest option.)

The result was a kernel in which some compiled-in modules -- in 
particular, netgraph nodes -- weren't accessible. mpd5 began 
spewing odd messages, and VPN connections would not come up. I'd 
built the kernel with the NO_MODULES option, so the modules that 
were missing couldn't be loaded dynamically.

Rebuilding the kernel using a single-threaded "make" solved the problem.

Have others seen the same symptoms? I'd like to be able to do fast, 
multithreaded kernel builds, but will obviously have to avoid it if 
the resulting kernels are corrupted.

--Brett Glass




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