From owner-freebsd-hackers@FreeBSD.ORG Sat Jan 21 01:53:13 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C62BF16A41F; Sat, 21 Jan 2006 01:53:13 +0000 (GMT) (envelope-from kris@obsecurity.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.FreeBSD.org (Postfix) with ESMTP id 868E243D53; Sat, 21 Jan 2006 01:53:12 +0000 (GMT) (envelope-from kris@obsecurity.org) Received: from obsecurity.dyndns.org (elvis.mu.org [192.203.228.196]) by elvis.mu.org (Postfix) with ESMTP id 61E361A3C1E; Fri, 20 Jan 2006 17:53:12 -0800 (PST) Received: by obsecurity.dyndns.org (Postfix, from userid 1000) id 93F2351AD6; Fri, 20 Jan 2006 20:53:11 -0500 (EST) Date: Fri, 20 Jan 2006 20:53:11 -0500 From: Kris Kennaway To: babkin@freebsd.org Message-ID: <20060121015311.GA46753@xor.obsecurity.org> References: <2209162.1137777933811.JavaMail.root@vms075.mailsrvcs.net> <20060120193741.GC39932@xor.obsecurity.org> <43D15C19.314EC346@verizon.net> <20060120222629.GA43985@xor.obsecurity.org> <43D19011.D15F8462@verizon.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="lrZ03NoBR/3+SXJZ" Content-Disposition: inline In-Reply-To: <43D19011.D15F8462@verizon.net> User-Agent: Mutt/1.4.2.1i Cc: Wesley Shields , Ashok Shrestha , freebsd-hackers@freebsd.org, Brandon Flowers , Mike Meyer , Gary Thorpe , Kris Kennaway , Dag-Erling Sm?rgrav Subject: Re: speed up port compiling using RAM (tmpfs) ??? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Jan 2006 01:53:13 -0000 --lrZ03NoBR/3+SXJZ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Jan 20, 2006 at 08:36:17PM -0500, Sergey Babkin wrote: > > If (as I said) you impose the correct dependency information. > > Currently there is no such information provided. >=20 > Ah, so we don't have any reliable information about dependencies=20 > between the ports either (not just between files inside each=20 > particular port)? Hm, I think it would present a problem even=20 > when building them sequentially. The port dependency checking of one port upon other ports doesn't really use the make(1) dependency system. Instead there is a shell script in bsd.port.mk that looks for the file listed in the *_DEPENDS variable and goes and explicitly spawns a new make to build the port if it is not found. This is fine for building ports serially, but it's not trivially parallelizable since it only has local knowledge: In order to do better you either have to: 1a) construct an enormous make(1) dependency web of the entire ports collection (in order to have global knowledge and be able to direct makes to avoid collisions), and 1b) somehow keep it up-to-date each time the ports tree is modified. or 2) Introduce mutual exclusion to prevent conflicts from two makes trying to operate on the same port at once. You also need to serialize in other places, e.g. modifying the database state in /var/db. This won't be as efficient as 1) since the second make will block instead of going off to build some other dependency in the meantime, which you could do with 1) if you could manage to implement it. Kris --lrZ03NoBR/3+SXJZ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iD8DBQFD0ZQHWry0BWjoQKURAj0oAKDffSa6Rw8XwSbEXTlE8/HWhpLkJACgucjl cFTTIW7EEBYUq/KmkmQ6uXA= =5klC -----END PGP SIGNATURE----- --lrZ03NoBR/3+SXJZ--