Re: kernel module parallel build?

From: John Baldwin <jhb_at_freebsd.org>
Date: Thu, 6 Dec 2012 11:19:30 -0500
On Wednesday, December 05, 2012 6:51:17 pm Damien Fleuriot wrote:
> 
> On 5 Dec 2012, at 18:39, Warner Losh <imp_at_bsdimp.com> wrote:
> 
> > 
> > On Dec 5, 2012, at 9:42 AM, John Baldwin wrote:
> > 
> >> On Tuesday, December 04, 2012 2:41:32 pm Ryan Stone wrote:
> >>> On Tue, Dec 4, 2012 at 10:52 AM, John Baldwin <jhb_at_freebsd.org> wrote:
> >>> 
> >>>> Hmm, I certainly see the module directories being built in parallel.  Some
> >>>> of
> >>>> the make jobs may not be as obvious since links are silent (no output
> >>>> unless
> >>>> there is an error).
> >>>> 
> >>>> 
> >>> This is definitely not the behaviour that I see trying to build any version
> >>> of FreeBSD.  I see the same behaviour as Andre: the depend and all targets
> >>> both iterate through the module directories sequentially.  It never builds
> >>> two module subdirectories concurrently.
> >> 
> >> Hmm, I think I was confused by seeing kernel builds intermingle with the 
> >> associated modules.  sys/modules/Makefile uses bsd.subdir.mk.  I think I see 
> >> similar things in world builds where I will see parallel builds of bin vs sbin 
> >> vs usr.bin vs usr.sbin, but within each of those directories the builds go 
> >> sequentially.  I think you would need to change bsd.subdir.mk if you want to 
> >> fix this.
> > 
> > The builds are in parallel, just that the parallelism is low because it is only parallel within the module being built. Would love to see a fix.
> > 
> > Warner
> > 
> 
> All trolling aside, I believe an awesome fix to be setting module override in /etc/make.conf to only build the 4-5 specific modules one needs.
> 
> To be honest I think this configuration tweak should be advertised a bit more as it definitely speeds up kernel builds.
> 
> I would be happy to check if this is advertised in the handbook in the "rebuilding kernel" section and enhance its visibility if required.
> 
> I can provide en_US and fr_FR.

Better than doing it in /etc/make.conf (or /etc/src.conf) is doing it direclty
in the kernel config file itself via

makeoptions MODULES_OVERRIDE="foo"

You can use multiple of these (with +=) in a config file as well.

-- 
John Baldwin
Received on Thu Dec 06 2012 - 18:28:44 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:32 UTC