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>