Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Dec 1997 07:24:55 -0500
From:      "Postmaster" <Postmaster@mail.rih.org>
To:        undisclosed-recipients:;
Subject:   Non-Delivery Report
Message-ID:  <199712241223.EAA04646@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
Could not deliver message (ID=14944).
Local account 'peterh' is unknown.

The first portion of the original message text follows:
-------------------------------------------------------

Received: from sarip.sol.net by mail.rih.org (AppleShare IP Mail Server 5.0.1) id 14944 via TCP with SMTP; Wed, 24 Dec 1997 07:24:55 -0500
Received: from hub.freebsd.org (hub.FreeBSD.ORG [204.216.27.18])
	by sarip.sol.net (8.8.8/8.8.8/SNNS-1.02) with ESMTP id GAA17697;
	Wed, 24 Dec 1997 06:07:07 -0600 (CST)
Received: from localhost (daemon@localhost)
          by hub.freebsd.org (8.8.7/8.8.7) with SMTP id DAA01127;
          Wed, 24 Dec 1997 03:20:56 -0800 (PST)
          (envelope-from owner-freebsd-current)
Received: (from root@localhost)
          by hub.freebsd.org (8.8.7/8.8.7) id DAA01099
          for current-outgoing; Wed, 24 Dec 1997 03:20:45 -0800 (PST)
          (envelope-from owner-freebsd-current)
Received: from silvia.HIP.Berkeley.EDU (ala-ca34-23.ix.netcom.com [207.93.143.151])
          by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id DAA01078;
          Wed, 24 Dec 1997 03:20:35 -0800 (PST)
          (envelope-from asami@vader.cs.berkeley.edu)
Received: (from asami@localhost) by silvia.HIP.Berkeley.EDU (8.8.8/8.6.9) id DAA27011; Wed, 24 Dec 1997 03:20:33 -0800 (PST)
Date: Wed, 24 Dec 1997 03:20:33 -0800 (PST)
Message-Id: <199712241120.DAA27011@silvia.HIP.Berkeley.EDU>
To: current@FreeBSD.ORG, stable@FreeBSD.ORG
Reply-to: current@FreeBSD.ORG
Subject: p-make
From: asami@cs.berkeley.edu (Satoshi Asami)
Sender: owner-freebsd-current@FreeBSD.ORG
X-Loop: FreeBSD.org
Precedence: bulk

Well, here is a new set of patches.  My previous one didn't work
because it ran out of processes -- the build was spawning N processes
at each level -- so, at the 4th level, there were N^4 processes.  Some 
makes got "no more processes" errors, but continued anyway (why?) and
the build died much later.

So, I made it so that the forking only happens at one level.  When
bsd.subdir.mk parallelizes a make, it will append -B to the flags so
it won't be forked again.

First, the numbers from individual directories.  The four numbers are
"make -j4 all" async/sync for /usr/{src,obj} and with parent dir
pmake/leaf node pmake.  The machines are both P6-200, /usr/{src,obj}
are on 8-disk CCDs of IBM 9GB 7,200RPM drives (the first machine has
larger partition though...the total size is 8GB for 2.2-stable and 3GB
for 3.0-current).  3.0-current has NOTCL defined.

2.2-stable:

===
bin
       72.73 real        62.09 user         9.62 sys    <- async, parent
       83.56 real        62.28 user        10.08 sys    <- async, leaf
       73.00 real        62.24 user         9.77 sys    <- sync, parent
       84.80 real        62.14 user        10.49 sys    <- sync, leaf
sbin
       95.27 real        80.57 user        13.18 sys
      113.60 real        80.20 user        13.05 sys
       95.29 real        80.72 user        12.98 sys
      115.11 real        80.13 user        13.40 sys
lib
      843.87 real       599.77 user       223.81 sys
      708.49 real       462.48 user       178.23 sys
      906.87 real       602.89 user       222.62 sys
      759.95 real       466.66 user       177.76 sys
libexec
       55.12 real        46.02 user         8.26 sys
       65.73 real        46.00 user         8.34 sys
       55.43 real        45.80 user         8.55 sys
       67.20 real        46.25 user         8.26 sys
share
      111.31 real        88.32 user        19.70 sys
      139.89 real        87.36 user        18.77 sys
      109.44 real        87.19 user        19.94 sys
      144.42 real        87.45 user        19.10 sys
usr.bin
      446.97 real       379.21 user        62.02 sys
      520.46 real       380.81 user        60.70 sys
      447.28 real       378.71 user        62.14 sys
      526.67 real       380.85 user        62.48 sys
usr.sbin
      402.24 real       342.53 user        54.49 sys
      461.16 real       342.22 user        52.96 sys
      401.83 real       342.56 user        53.78 sys
      467.48 real       343.44 user        53.25 sys
gnu/lib
      537.30 real       445.09 user        84.75 sys
      562.43 real       447.25 user        87.67 sys
      546.56 real       447.99 user        85.05 sys
      583.22 real       447.74 user        87.56 sys
gnu/usr.bin
     1094.20 real       942.52 user        93.68 sys
     1089.30 real       938.02 user        93.64 sys
     1114.73 real       950.29 user        93.84 sys
     1114.97 real       950.11 user        94.73 sys
===

3.0-current:

===
bin
       69.65 real        60.11 user         8.17 sys
       79.47 real        60.17 user         8.26 sys
       69.79 real        60.38 user         7.99 sys
       79.92 real        60.06 user         8.52 sys
sbin
       96.35 real        81.64 user        12.71 sys
      115.08 real        81.60 user        11.90 sys
       96.39 real        81.63 user        12.64 sys
      117.10 real        81.64 user        12.12 sys
lib
     1259.10 real       918.46 user       251.52 sys
     1499.31 real       924.88 user       276.02 sys
     1344.95 real       922.70 user       248.34 sys
     1625.90 real       927.65 user       281.68 sys
libexec
       53.42 real        45.15 user         6.94 sys
       62.50 real        45.06 user         6.74 sys
       53.52 real        45.25 user         6.96 sys
       64.59 real        45.20 user         6.72 sys
share
      107.32 real        85.39 user        15.29 sys
      139.84 real        85.76 user        14.84 sys
      108.04 real        84.96 user        15.76 sys
      144.18 real        85.79 user        14.94 sys
usr.bin
      463.92 real       395.59 user        57.83 sys
      534.99 real       394.94 user        56.71 sys
      463.25 real       396.46 user        56.61 sys
      540.16 real       396.20 user        56.53 sys
usr.sbin
      402.00 real       344.13 user        49.20 sys
      461.87 real       343.06 user        47.52 sys
      401.31 real       344.71 user        48.22 sys
      467.61 real       343.75 user        47.95 sys
gnu/lib
      510.97 real       424.14 user        72.09 sys
      543.21 real       423.12 user        76.13 sys
      518.31 real       426.08 user        72.46 sys
      569.64 real       424.54 user        76.14 sys
gnu/usr.bin
     1003.39 real       905.61 user        81.43 sys
     1055.77 real       907.60 user        81.05 sys
     1010.71 real       906.07 user        81.50 sys
     1063.74 real       907.70 user        80.91 sys
===

As you can see, it speeds up places like bin and usr.bin quite a bit.

The tradeoff is if you have one or two very large directories
(compared to the others), that one will be running a single-process
make (because of -B) long after others are done.  I actually had to
move sh much earlier in the SUBDIR list in bin/Makefile so it doesn't
happen.  I observed this by looking at the make output; we may need to
do similar things in usr.sbin (xntpd is pretty large and is near the
end of the list).

On the other hand, it doesn't help much in places like lib (it
actually hurts in 2.2-stable).  It's because there is one directory
(libc) that basically dwarfs the rest.  My guess on the reason why
3.0-current behaves better is because it also builds libc_r, which is
about as big so there's at least a two-way parellism going on even
after everything else is done.

For lib, I'm actually not sure why it helps at all.  For gnu/usr.bin,
I assume it's spending most of the time inside cc.

Now, for the whole buildworld.  The numbers are measured by doing a
"rm -rf /usr/obj/usr/src" and doing the actual build with -DNOCLEAN.

  -j4 async parent
  -j4 async leaf
  -j4 sync parent
  -j4 sync leaf
  -j2 async parent
  -j2 async leaf
  -j2 sync parent
  -j2 sync leaf

2.2-stable:

===
     5517.40 real      3785.70 user       927.84 sys
     5726.68 real      3766.08 user       960.40 sys
     5900.12 real      3787.60 user       945.85 sys
     6090.51 real      3768.67 user       970.15 sys
     5408.57 real      3816.63 user       860.06 sys
     5650.55 real      3749.16 user       851.64 sys
     5613.19 real      3776.83 user       843.19 sys
     6016.20 real      3756.14 user       852.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712241223.EAA04646>