From owner-freebsd-arch@FreeBSD.ORG Sun Mar 30 23:04:49 2003 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BAA2037B408; Sun, 30 Mar 2003 23:04:49 -0800 (PST) Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4C8B443FA3; Sun, 30 Mar 2003 23:04:46 -0800 (PST) (envelope-from bde@zeta.org.au) Received: from katana.zip.com.au (katana.zip.com.au [61.8.7.246]) by mailman.zeta.org.au (8.9.3/8.8.7) with ESMTP id RAA02723; Mon, 31 Mar 2003 17:04:43 +1000 Date: Mon, 31 Mar 2003 17:04:42 +1000 (EST) From: Bruce Evans X-X-Sender: bde@gamplex.bde.org To: Ruslan Ermilov In-Reply-To: <20030331042628.GA65700@sunbay.com> Message-ID: <20030331165732.Q17731@gamplex.bde.org> References: <20030329.163343.53040416.imp@bsdimp.com> <20030331042628.GA65700@sunbay.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: arch@freebsd.org cc: "M. Warner Losh" Subject: Re: depend + all vs dependall X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Mar 2003 07:04:52 -0000 On Mon, 31 Mar 2003, Ruslan Ermilov wrote: > On Sat, Mar 29, 2003 at 04:33:43PM -0700, M. Warner Losh wrote: > ... > > @@ -67,7 +67,7 @@ > > > > > > .for __target in all all-man checkdpadd clean cleandepend cleandir \ > > - depend distribute lint maninstall \ > > + depend dependall distribute lint maninstall \ > > obj objlink realinstall regress tags > > ${__target}: _SUBDIR > > .endfor > > If you want to really try dependall, you should implement it > in bsd.subdir.mk like the distribute target, similar to this: > > .if !target(dependall) > dependall: > cd ${.CURDIR}; \ > ${MAKE} depend -DNO_SUBDIR; \ > ${MAKE} all -DNO_SUBDIR > .endif That won't work, since it gives a double tree traversal for the subdirs and thus defeats the point of dependall. Any splitting up of dependall must not be passed down. > Also, your test is not honest because original Makefile.inc1 > did not parallelize the "all" stage of "buildworld", by not > implementing par-all. Last time I tried par-all, it saved > me 16% of time from the -j8 buildworld: > > 26m8.74s real 26m13.08s user 11m9.70s sys (old) > 21m48.52s real 26m20.60s user 11m4.95s sys (new) > > Attached is the message with the patch. It has some Russian, > but also includes a patch. Note that par-all only parallelizes > top-level bsd.subdir.mk makefiles, as we depend on the ordering > of traversing SUBDIRs in a few places. The plan is to drop > this assumption in places that don't need this ordering. Please benchmark mainly for the usual case of non-SMP :-). Bruce