From owner-svn-src-all@FreeBSD.ORG Thu Nov 6 19:35:43 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F209313E; Thu, 6 Nov 2014 19:35:42 +0000 (UTC) Received: from mail105.syd.optusnet.com.au (mail105.syd.optusnet.com.au [211.29.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id B47E7CFD; Thu, 6 Nov 2014 19:35:42 +0000 (UTC) Received: from c122-106-147-133.carlnfd1.nsw.optusnet.com.au (c122-106-147-133.carlnfd1.nsw.optusnet.com.au [122.106.147.133]) by mail105.syd.optusnet.com.au (Postfix) with ESMTPS id 753BD104566C; Fri, 7 Nov 2014 06:35:29 +1100 (AEDT) Date: Fri, 7 Nov 2014 06:35:28 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Warner Losh Subject: Re: svn commit: r274183 - head/sys/modules/mrsas In-Reply-To: <201411061648.sA6Gma3S047775@svn.freebsd.org> Message-ID: <20141107054107.J1777@besplex.bde.org> References: <201411061648.sA6Gma3S047775@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=BdjhjNd2 c=1 sm=1 tr=0 a=7NqvjVvQucbO2RlWB8PEog==:117 a=PO7r1zJSAAAA:8 a=kj9zAlcOel0A:10 a=JzwRw_2MAAAA:8 a=pozwR4D8IysTOV0LMs0A:9 a=CjuIK1q_8ugA:10 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Nov 2014 19:35:43 -0000 On Thu, 6 Nov 2014, Warner Losh wrote: > Log: > clean removes @ and machine now, so no need to do it again. That is a bug in the clean target. It invalidates the pathnames in the generated .depend file. The cleandepend target still documents the care that it takes with this: cleandepend: cleanilinks # .depend needs include links so we remove them only together. cleanilinks: rm -f ${_ILINKS} but this is defeated by adding ${_ILINKS} to CLEANFILES unconditionally :-(. BTW, include pollution is now so bad that generating dependencies now takes longer than building everything (except dependencies) in some cases. E.g., for GENERIC on nfs over slow networks like the FreeBSD cluster. make -ss -j8 depend takes 113 seconds real (52 user 22 sys) on ref11-i386. CC=gcc42 COPTFLAGS=-O make -ss -j8 takes only 93 seconds (536 real 74 sys). FreeBSD-4 kernels with about 1/10 as many dependencies take about 8 seconds for make -ss -j1 depend and 32 seconds for make -ss j4 on 2-core systems with slightly slower CPUs but better tuned networks. nfs (without mount -nocto) over slow networks handles lots of little include files especially badly because cto defeats caching (data is cached but metadata is re-obtained from the server on every open). One workaround is to build with a large -j count so that progress can be made in threads no waiting for the network. This doesn't help for "make depend" because it is still done serially. So .depend files should usually not be created, but when they are they are more precious than they used to be and it is more important than it used to be to keep cleandepend separate from clean and not break it. Bruce