Gentoo Archives: gentoo-user

From: Pandu Poluan <pandu@××××××.info>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] emerge -j, make -j and make -l
Date: Mon, 28 Nov 2011 01:08:21
Message-Id: CAA2qdGXTzxbP-hg3JjZopxPT9WPau9k4vJnX=-P+owxw=m5ySg@mail.gmail.com
In Reply to: Re: [gentoo-user] emerge -j, make -j and make -l by Michael Mol
1 On Nov 28, 2011 3:21 AM, "Michael Mol" <mikemol@×××××.com> wrote:
2 >
3 > On Sun, Nov 27, 2011 at 12:56 PM, Pandu Poluan <pandu@××××××.info> wrote:
4 > > On Nov 27, 2011 5:12 PM, "Michael Mol" <mikemol@×××××.com> wrote:
5 >
6 > [snip]
7 >
8 > >
9 > > Here's my experience:
10 > >
11 > > I always experience emerge failures on my Gentoo VMs if I use
12 MAKEOPTS=-j>3.
13 > > Not all packages, but many. Including, IIRC, glibc and gcc.
14 >
15 > In my barebones 177-package state, I didn't get any build failures
16 > from parallel building, either via emerge -j or make -j. I did get one
17 > failure when I went to install X that worked fine on the second
18 > attempt.
19 >
20
21 And in my barebones system (172 packages), there are several packages that
22 reliably fail, even when emerged on their own *sigh*
23
24 > > This happens even if I make sure that there's just one emerge job being
25 > > done. And this happens even if I allocate more vCPUs than -j, on VMware
26 and
27 > > XenServer alike.
28 >
29 > FWIW, I've been running with MAKEOPTS=-j10 on my Phenom 9650 for over
30 > a year. It's very rare that something breaks due to the parallel
31 > build. I think it's happened perhaps three times, and each time was
32 > resolvable with a retry. YMMV, of course; race conditions are finicky.
33 >
34
35 I have a hunch that the hypervisor had some effects. Most likely, another
36 VM in the same host has a high enough load that necessitates the Gentoo VM
37 to be shifted to another (physical) core, and this messes up the timing.
38
39 MAKEOPTS=-j3 always succeeds, though. So I'm disinclined to delve deeper
40 into the issue.
41
42 > > I don't know where the 'blame' lies, but I've found myself
43 standardizing on
44 > > MAKEOPTS=-j3, and PORTAGE_DEFAULT_OPTS="--jobs
45 > > --load-average=<1.6*num_of_vCPU>"
46 > >
47 > > (Yes, no explicit number of jobs. The newer portages are smart enough to
48 > > keep starting new jobs until the load number is reached)
49 >
50 > Sweet; I didn't know about Portage's --load-average; I'll definitely
51 > switch to that instead of -j. Load-driven make plus load-driven
52 > portage should work beautifully on my system.
53 >
54 > I'll steal your 1.6 factor, and give:
55 > MAKEOPTS=-j <2*N> -l <1.6*N)
56 > PORTAGE_DEFAULT_OPTS="--jobs --load-average<1.6*N>"
57 > a try.
58 >
59
60 Make sure that make supports non-integer values for -l, though.
61
62 > How does that interact with distcc, by the way? I've got two of these
63 > octo-core Xeon boxes, and I've still got my Phenom 9650--distcc on my
64 > home network should become very, very nice. And this box is consuming
65 > 255W at the wall with monitor off, 326W with monitor on. That's not
66 > bad. Though perhaps I should move to an apartment where heat isn't
67 > free...
68 >
69
70 Well, I don't use distcc, so I can't speculate. But with plain single
71 system compilation, my settings have been serving me real well :-)
72
73 Rgds,

Replies

Subject Author
Re: [gentoo-user] emerge -j, make -j and make -l Michael Mol <mikemol@×××××.com>