| Summary: | [patch] misleading use of make -j flag in handbook | ||
|---|---|---|---|
| Product: | Documentation | Reporter: | pete |
| Component: | Books & Articles | Assignee: | Tom Rhodes <trhodes> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | Latest | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
pete
2005-01-20 23:20:01 UTC
On 2005-01-20 23:11, pete wright <pete@nomadlogic.org> wrote: > http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html > states that: > "It is now possible to specify a -j option to make which will cause > it to spawn several simultaneous processes. This is most useful on > multi-CPU machines. However, since much of the compiling process is > IO bound rather than CPU bound it is also useful on single CPU > machines." > > After testing this out on a SMP system doing a: > $ make -jN buildworld > (when "N" ranges from 1 to 8) I found that compile times do *not* > decrease after starting two make jobs (make -j2 buildworld). > This was also tested by others on Uniproc machines and they did not > find a decrease in time after starting one make job [...] There have been problems with running multiple make instances in the past. I'd probably argue for entirely removing the recommendation for -j from the Handbook. New users should never use it, because they don't be able to easily troubleshoot broken builds. Experienced users will probably know if it's safe to use -j, by experimenting and reading relevant material in the make(1) manpage. - Giorgos Giorgos, I'm going to remove that line unless you provide me a valid reason not to. :) -- Tom Rhodes Tom Rhodes <trhodes@FreeBSD.org> wrote: > Giorgos, > I'm going to remove that line unless you provide me a valid > reason not to. :) Please, do. Removing the suggestion for "make -j" is something I wouldn't object to any day. People who are experienced enough with the build of FreeBSD will have no problem using -j, since they are already acquainted with Make a lot. What I would remove is shown below. Feel free to edit/adopt this as needed: %%% Index: chapter.sgml =================================================================== RCS file: /home/ncvs/doc/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml,v retrieving revision 1.215 diff -u -r1.215 chapter.sgml --- chapter.sgml 12 Jan 2005 23:56:24 -0000 1.215 +++ chapter.sgml 2 Mar 2005 01:05:02 -0000 @@ -960,29 +960,6 @@ <para>Run</para> <screen>&prompt.root; <userinput>make buildworld</userinput></screen> - - <para>It is now possible to specify a <option>-j</option> option to - <command>make</command> which will cause it to spawn several - simultaneous processes. This is most useful on multi-CPU machines. - However, since much of the compiling process is IO bound rather - than CPU bound it is also useful on single CPU machines.</para> - - <para>On a typical single-CPU machine you would run:</para> - - <screen>&prompt.root; <userinput>make -j4 buildworld</userinput></screen> - - <para>&man.make.1; will then have up to 4 processes running at any one - time. Empirical evidence posted to the mailing lists shows this - generally gives the best performance benefit.</para> - - <para>If you have a multi-CPU machine and you are using an SMP - configured kernel try values between 6 and 10 and see how they speed - things up.</para> - - <para>Be aware that this is still somewhat experimental, and commits - to the source tree may occasionally break this feature. If the - world fails to compile using this parameter try again without it - before you report any problems.</para> </sect3> <sect3> %%% State Changed From-To: open->closed Wording in the handbook has been changed to make the use of -j less dangerous. Thanks! Responsible Changed From-To: freebsd-doc->trhodes Over to me. |