<div dir="ltr">On 22 January 2013 18:24, Karen Shaeffer <span dir="ltr"><<a href="mailto:shaeffer@neuralscape.com" target="_blank">shaeffer@neuralscape.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><span style="color:rgb(34,34,34)">The kernel reserves a chunk of memory for itself as working space to dig out</span><br>
</div>
of an out-of-memory situation. So it will swap before running out of memory,<br>
especially if there is a large spike in memory usage at that point where<br>
out-of-memory is approached.<br></blockquote><div><br></div><div style>I think the main issue is that it's normally ok to compile using all CPUs (or even 1.5x the number of CPUs) but it's NOT ok to link on the same cardinality. I've looked for a solution to this and have not found yet a decent way. Maybe someone here knows...</div>
<div style><br></div><div style>You could use a script to only start LD once no other was running (or something like that), so that even at "make -j16", you'd only have a handful of LDs running. It works, but it's highly hacky.</div>
<div style><br></div><div style>This is a modern problem, since not often people in 2000 had multi-core machines on their desks, but nowadays even Pandaboards are SMP. It's not surprising that Make and others don't have a general solution to this, but would be an interesting (and very useful) project to allow Make/SCcons/Ninja to have -jc for compilation and -jl for linking (keeping -j for both and others).</div>
<div style><br></div><div style>cheers,</div><div style>--renato</div></div></div></div>