Subject: bin/15179: make(1) no longer uses its file caches effectively
To: None <gnats-bugs@gnats.netbsd.org>
From: Paul Kranenburg <pk@cs.few.eur.nl>
List: netbsd-bugs
Date: 01/08/2002 14:29:12
>Number:         15179
>Category:       bin
>Synopsis:       make(1) no longer uses its file caches effectively
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jan 08 05:31:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Paul Kranenburg
>Release:        NetBSD-current, Jan 2002
>Organization:
	
>Environment:
	
>Description:
	make(1) caches the contents of the object and include directories
	so it can check efficiently for the existence of the files it is
	looking for when checking dependencies or including other makefiles.
	These caches are no longer used effectively resulting in a tremendous
	increase in the number of stat(2) system calls. This causes a
	noticeable slowdown especially when a large number of source and
	object files are involved such as in a kernel build directory.
>How-To-Repeat:
	Look at the ouput of `ktrace make' on some kernel build directory.
	Note the number of stat(2) calls resulting from suffix rule processing,
	which amount to 15 for every object file.
>Fix:
	none provided.
	Yet I note that this problem appeared with revision 1.27
	of src/usr.bin/make/dir.c (see also PR15178).
>Release-Note:
>Audit-Trail:
>Unformatted: