Re: What's in kbuild.git for 2.6.19

From: Keith Owens
Date: Tue Aug 15 2006 - 02:25:42 EST


On Mon, Aug 14, 2006 at 12:02:09AM -0700, Keith Owens wrote:
>Sam Ravnborg (on Sun, 13 Aug 2006 21:45:03 +0200) wrote:
>>Outstanding kbuild issues (I should fix a few of these for 2.6.18):
>>o make -j N is not as parallel as expected (latest report from Keith
>> Ownens but others has complained as well). I assume it is a kbuild
>> thing but has no clue how to fix it or debug it further.
>
>It is the make jobserver code. make -j<n> causes the various make
>tasks to communicate and work out how many versions are currently
>running, to avoid overrunning the -j<n> value. Every recursive
>invocation of make subtracts one from the -j value, reducing the value
>that is left when make finally get down to doing some useful work
>instead of just recursing. Jobserver problems are yet another reason
>why recursive make is bad.
>
>kbuild is full of recursive make. The user cannot just add an excess
>to <n>, the number of recursive invocations changes from kernel to
>kernel as people try to fix bugs in makefile generation, so the
>required excess value keeps changing.

The jobserver in make 3.80 is buggy. 3.80 appears to work for parallel
builds using a single Makefile, with recursive make it can lose
jobserver tokens. make 3.81 works fine. Now to persuade SuSE to
upgrade to make 3.81.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/