Follow-up Comment #3, bug #57575 (project make): All that means is that it's harder to get exactly the right number of jobs to run in parallel without -l.
The -l option doesn't change anything except add an extra test that make checks to see if it can run a job. So instead of "I have a job to run, have I exceeded my -j level?", make uses "I have a job to run, have I exceeded my -j level OR is the load higher than the -l setting?" That's the only difference with and without -l. There's no difference in the order in which jobs are selected to be run. Just to note, that a load of 0.5 when you have 8 CPUs is pretty small. A setting of "-j8 -l0.5" basically tells make "run 8 jobs in parallel BUT if the load is higher than one half of one CPU's worth, don't start more". Load averages on multi-core systems are something of a dark art but _more or less_ you get 1 for every core. So if you had 8 cores and they were 100% busy with no other processes waiting to run you'd expect your load average to approach 8. You may be thinking that the load is averaged across CPUs so that a load of 1.0 means "all CPUs busy" and 0.5 means you want about half your system to be busy but that's not how it works. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?57575> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/