Multi-Threaded make

JD jd1008 at gmail.com
Thu Nov 29 06:10:40 UTC 2012


On 11/28/2012 10:48 PM, John Wendel wrote:
> On 11/28/2012 08:16 PM, JD wrote:
>>
>> On 11/28/2012 08:21 PM, Cameron Simpson wrote:
>>> On 28Nov2012 15:37, JD <jd1008 at gmail.com> wrote:
>>> | While building the kernel from source RPM, I run
>>> | the command ps -ef | grep make in another terminal,
>>> | and I do see that 4 make processes are running, with
>>> | each one building objects for a different kernel source
>>> | directory.
>>> |
>>> | However, something else seems to be single threaded
>>> | which is causing the huge delay in finishing kernel build.
>>> |
>>> | I found that when I run top to see the upper-most
>>> | cpu consumers, I see only one cc1 process at the top.
>>> |
>>> | So I ran ps again to see how many cc1 processes there
>>> | are.
>>> |
>>> | Always - just one cc1 process.
>>> |
>>> | I would expect to see anywhere from 1 to 4 cc1 processes
>>> | at a time. But that is not the case.
>>> |
>>> | What is forcing only a single instance of cc1 at a time?
>>>
>>> Is make running with the "-j 4" (or whatever value) option?
>> I had already said that after running rpmbuild,
>> ps -ef shows 4 make processes running.
>> So, it must be picking up -j4 from somewhere,
>> perhaps from one of the rpmbuild macros.
>>
>> But as I also stated, when files are being compiled, one of the stages
>> of compilation is cc1. Since there are 4 make processes running at a 
>> time,
>> with each make process running for one of the dirs containing kernel c
>> source files, then one woould expect to see anywhere from 1 to cc1
>> processes running during the build.
>> I only see a single cc1 process running during the entire kernel 
>> build duration,
>> by running ps -ef  | grep cc1
>> every 5 seconds.
>>
>> I never see more than a single instance of cc1.
>>
>
> I can't help with this question, but I build a new kernel (from 
> kernel.org) whenever they appear.
> This never takes more than 5 or 6 minutes on a slow 2-cpu AMD box with 
> only 1 GB memory.  I usually
> don't specify "-j", so I only have one process running.
>
> I think you're seeing something seriously broken if your builds are 
> taking a huge amount of time.
>
> Regards,
>
> John
Thank you John.
However, my fc16 is kept totally up-to-date with daily updates!!
I just finished building kernel.i686 0:3.7.0-0.rc7.git1.1 from Fedora 
Rawhide Source RPM.
I used the rpmbuild options:
--without bootwrapper --without debug --without debuginfo --without 
highbank --without imx --without kirkwood --without omap --without pae 
--without perf --without perf --without smp --without tegra --without 
vdso_install

and it still took 11 hours!!! It produced:
kernel-3.7.0-0.rc7.git1.1.fc16.i686.rpm
kernel-headers-3.7.0-0.rc7.git1.1.fc16.i686.rpm
kernel-tools-3.7.0-0.rc7.git1.1.fc16.i686.rpm
kernel-tools-libs-3.7.0-0.rc7.git1.1.fc16.i686.rpm
kernel-tools-libs-devel-3.7.0-0.rc7.git1.1.fc16.i686.rpm
kernel-devel-3.7.0-0.rc7.git1.1.fc16.i686.rpm
kernel-modules-extra-3.7.0-0.rc7.git1.1.fc16.i686.rpm

I do not think that what you build from kernel tarball from mainline
performs the same compilations as building from an rpm source using 
rpmbuild.

As a side note to Bruno, who wanted me to build and try this kernel:
I will reboot immediately after sending this message with this kernel
I just built.





More information about the users mailing list