Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Dec 2012 09:10:53 -0800
From:      Garrett Cooper <yanegomi@gmail.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>, Andre Oppermann <andre@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>, Ryan Stone <rysto32@gmail.com>
Subject:   Re: kernel module parallel build?
Message-ID:  <CAGH67wQ%2Brjr-nkwq1vy6GaKkDoU6chmbwtteGJamHbJUDtaTHw@mail.gmail.com>
In-Reply-To: <201212051142.18361.jhb@freebsd.org>
References:  <5083D84E.50903@freebsd.org> <201212041052.51476.jhb@freebsd.org> <CAFMmRNzmfHcC3S%2BFfh2YjWDdzr=ddHEggrg%2Biyjjfc6COKdKSw@mail.gmail.com> <201212051142.18361.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Dec 5, 2012 at 8:42 AM, John Baldwin <jhb@freebsd.org> 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@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.

    Correct:

45         @${_+_}for entry in ${SUBDIR}; do \
             ^^^^^^^^^^^^^^^^^^^ This is where things get serialized
^^^^^^^^^^^^^^^^^^^^^^^^
46                 if test -d ${.CURDIR}/$${entry}.${MACHINE_ARCH}; then \

    Same thing applies for buildkernel building modules because it
just wraps around bsd.subdir.mk in sys/modules/Makefile . Enhancing it
to be parallel would introduce potential races. Some of the work sjg's
doing with meta make will make this unnecessary from a buildworld
perspective, but I'm not sure about buildkernel.
Thanks,
-Garrett



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGH67wQ%2Brjr-nkwq1vy6GaKkDoU6chmbwtteGJamHbJUDtaTHw>