Messages in this thread | | | Date | Tue, 21 Feb 2006 22:02:35 +0100 | From | "Jesper Juhl" <> | Subject | make -j with j <= 4 seems to only load a single CPU core |
| |
This is quite odd and I've no idea where to start looking for the cause, but let me describe what I'm seeing and maybe someone can point me in the right direction.
I'm running SMP 2.6.x kernels on a Athlon 64 X2 4400+
When I build new kernels I use 'make -j' to get both CPU cores busy and minimize build time.
I've observed that when I use 'make -j 2', 'make -j 3' or 'make -j 4' only ~half of my CPU resources get used during the build and when I look at the output it looks exactely like output from plain 'make' for something like 95% of the build - that is, files get build sequentially, not in parallel. However, if I run 'make -j 5' or higher, then both cores get lots of work to do and utilization of both cores stay close to 100% for almost the entire build, and the output during the build shows lots of files from different directories intermixed, so it's clearly building stuf in parallel.
I find this quite strange since anything from 'make -j 2' and up should be able to keep both cores resonably busy, but there seems to be a huge difference between j <= 4 and j > 4.
Another datapoint: This is most pronounced when I am also running the make process nice'd. Which I usually do in order to be able to use the machine for other tasks while the build is in progress. If I don't run the build nice'd then it starts to be resonably parallel at j >= 3, but still doesn't *really* load both cores before j >= 5.
Just to be completely clear - a few examples:
This is what I usually run to load both cores well :
nice make -j 5 2>&1 | tee build.log
this however gives me a more or less serial build with only half the system resources used :
nice make -j 4 2>&1 | tee build.log
Without nice this loads the box somewhat OK (but not completely):
make -j 3 2>&1 | tee build.log
and this pretty much gives me a serial build:
make -j 2 2>&1 | tee build.log
Any good explanations for this behaviour ?
-- Jesper Juhl <jesper.juhl@gmail.com> Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html Plain text mails only, please http://www.expita.com/nomime.html - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |