Multi-Threaded make

JD jd1008 at gmail.com
Thu Nov 29 04:16:49 UTC 2012


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.



More information about the users mailing list