From owner-freebsd-hackers@FreeBSD.ORG Fri Nov 9 20:34:45 2012 Return-Path: Delivered-To: hackers@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9FF2D26C for ; Fri, 9 Nov 2012 20:34:45 +0000 (UTC) (envelope-from sjg@juniper.net) Received: from exprod7og106.obsmtp.com (exprod7og106.obsmtp.com [64.18.2.165]) by mx1.freebsd.org (Postfix) with ESMTP id 1CEE88FC08 for ; Fri, 9 Nov 2012 20:34:41 +0000 (UTC) Received: from P-EMHUB01-HQ.jnpr.net ([66.129.224.36]) (using TLSv1) by exprod7ob106.postini.com ([64.18.6.12]) with SMTP ID DSNKUJ1o2i5AyJLGcKVBAnKS2iy+B19ZDYuJ@postini.com; Fri, 09 Nov 2012 12:34:45 PST Received: from magenta.juniper.net (172.17.27.123) by P-EMHUB01-HQ.jnpr.net (172.24.192.33) with Microsoft SMTP Server (TLS) id 8.3.213.0; Fri, 9 Nov 2012 12:32:43 -0800 Received: from chaos.jnpr.net (chaos.jnpr.net [172.24.29.229]) by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id qA9KWf358752; Fri, 9 Nov 2012 12:32:42 -0800 (PST) (envelope-from sjg@juniper.net) Received: from chaos.jnpr.net (localhost [127.0.0.1]) by chaos.jnpr.net (Postfix) with ESMTP id C5DD058094; Fri, 9 Nov 2012 12:32:40 -0800 (PST) To: Subject: Re: Fwd: Re: make -jN buildworld on < 512MB ram In-Reply-To: <20121109175641.GC9916@dragon.NUXI.org> References: <20121109175641.GC9916@dragon.NUXI.org> Comments: In-reply-to: "David O'Brien" message dated "Fri, 09 Nov 2012 09:56:41 -0800." From: "Simon J. Gerraty" X-Mailer: MH-E 7.82+cvs; nmh 1.3; GNU Emacs 22.3.1 Date: Fri, 9 Nov 2012 12:32:40 -0800 Message-ID: <20121109203240.C5DD058094@chaos.jnpr.net> MIME-Version: 1.0 Content-Type: text/plain X-Mailman-Approved-At: Fri, 09 Nov 2012 22:29:34 +0000 Cc: sjg@juniper.net X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Nov 2012 20:34:45 -0000 >Ah, but make(1) can delay spawning any new processes when it knows its >children are paging. Sounds good - but I doubt the complexity it adds would really be worth it. If the real problem is the C++ compiler or other large tool needing sufficient resources that you have to ensure invocations are sequenced/throttled, then the obvious solution would seem to be to invoke it via a proxy that can do the the needed throttling on a global (system, user, or whatever basis seems to make sense). Think of make's invocation of ${CXX} as actually just submitting a job to the CXX service, which might only be allowing one instance of C++ to run at a time.