From owner-freebsd-current@FreeBSD.ORG Fri Apr 30 06:28:33 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A0C6216A51B; Fri, 30 Apr 2004 06:28:31 -0700 (PDT) Received: from mailout1.pacific.net.au (mailout1.pacific.net.au [61.8.0.84]) by mx1.FreeBSD.org (Postfix) with ESMTP id DADAD43D58; Fri, 30 Apr 2004 06:28:30 -0700 (PDT) (envelope-from bde@zeta.org.au) Received: from mailproxy1.pacific.net.au (mailproxy1.pacific.net.au [61.8.0.86])i3UDSP4u023325; Fri, 30 Apr 2004 23:28:25 +1000 Received: from gamplex.bde.org (katana.zip.com.au [61.8.7.246]) i3UDSAI2005329; Fri, 30 Apr 2004 23:28:12 +1000 Date: Fri, 30 Apr 2004 23:28:09 +1000 (EST) From: Bruce Evans X-X-Sender: bde@gamplex.bde.org To: Kris Kennaway In-Reply-To: <20040429215236.GA42902@xor.obsecurity.org> Message-ID: <20040430231553.X15963@gamplex.bde.org> References: <200404291855.i3TItUTr048530@green.homeunix.org> <20040429215236.GA42902@xor.obsecurity.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-current@freebsd.org cc: Alex Lyashkov cc: Julian Elischer Subject: Re: code cleanup X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Apr 2004 13:28:34 -0000 On Thu, 29 Apr 2004, Kris Kennaway wrote: > On Thu, Apr 29, 2004 at 04:56:02PM -0400, John Baldwin wrote: > > On Thursday 29 April 2004 02:55 pm, Brian Fundakowski Feldman wrote: > > > For what it's worth, I don't think it is good to hide things as much as > > > FOREACH_PROC_IN_SYSTEM() -- this specific instance -- does, but grep is not > > > a good tool for a tree as large as FreeBSD's. Try using cscope instead. > > > > I've used glimpse in the past but it is buggy. Actually, grep -r on ssc/sys > > doesn't take that long, esp. if you do it multiple times as most of the tree > > is still in cache for subsequent grep's (at least on my laptop). I also tend > > to have lots (around 7 or so) trees that have work going on in them at any > > one time. > > The problem with grep -r in src/sys is that it chokes on the symlinks > created by module builds and pollutes the output with hundreds of > lines of errors unless you remember to first remove the module build > files. Use find(1) to not follow symlinks. E.g.: %%% Script started on Fri Apr 30 23:15:17 2004 ttyp0:bde@besplex:/tmp> cd /sys ttyp0:bde@besplex:/sys> time find . -type f | time xargs grep fooo 0.42 real 0.01 user 0.06 sys 0.49 real 0.11 user 0.29 sys ttyp0:bde@besplex:/sys> exit Script done on Fri Apr 30 23:15:33 2004 %%% This was fast because /sys was already in the disk cache. It would have taken 15 seconds with a cold cache. I also have: lrwxrwxrwx 1 bde wheel 28 Mar 6 06:57 /sys/i386/compile@ -> /usr/obj/usr/src/sys/compile (see Makefile.i386 rev.1.28) so I don't have any object files under /sys to slow down the search, except grep -r would follow this symlink too. Perhaps it is a bug for grep -r to follow symlinks by default, especially since there is no way to change the default and whether symlinks are followed is not mentioned in the man page. diff -r has the same problem. Bruce