From owner-cvs-src@FreeBSD.ORG Wed Jul 23 00:28:57 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 53ADD37B401; Wed, 23 Jul 2003 00:28:57 -0700 (PDT) Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by mx1.FreeBSD.org (Postfix) with ESMTP id 40A9E43F85; Wed, 23 Jul 2003 00:28:55 -0700 (PDT) (envelope-from bde@zeta.org.au) Received: from gamplex.bde.org (katana.zip.com.au [61.8.7.246]) by mailman.zeta.org.au (8.9.3p2/8.8.7) with ESMTP id RAA24100; Wed, 23 Jul 2003 17:28:36 +1000 Date: Wed, 23 Jul 2003 17:28:35 +1000 (EST) From: Bruce Evans X-X-Sender: bde@gamplex.bde.org To: Peter Wemm In-Reply-To: <20030723003212.1606C2A8B2@canning.wemm.org> Message-ID: <20030723171520.E1276@gamplex.bde.org> References: <20030723003212.1606C2A8B2@canning.wemm.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Mailman-Approved-At: Wed, 23 Jul 2003 05:20:10 -0700 cc: "Alan L. Cox" cc: Poul-Henning Kamp cc: src-committers@FreeBSD.ORG cc: Julian Elischer cc: Steve Kargl cc: cvs-src@FreeBSD.ORG cc: David Schultz cc: Bosko Milekic cc: cvs-all@FreeBSD.ORG cc: Marcel Moolenaar Subject: Re: cvs commit: src/sys/kern init_main.c kern_malloc.c md5c.c subr_autoconf.c subr_mbuf.c subr_prf.c tty_subr.c vfs_cluster.c vfs_subr.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2003 07:28:57 -0000 On Tue, 22 Jul 2003, Peter Wemm wrote: > "Poul-Henning Kamp" wrote: > > > That is the sort of thing which makes me belive that unless proven > > beneficial (by one of the two criteria), inline is harmful. > > There is a great leap there. Just because somebody isn't willing to spend > considerable time to re-prove that the runtime improvement is still there > to your satisfaction, that doesn't mean that it is harmful. > > Take the i386 interrupt vector code. Thats an example where it is massively > inlined. Having a non-inlined function that does all the calculations > and bit shifting is much smaller in code size, but slower at runtime. A good bad example :-). I've wanted to try uninlining that code for years. Everything except fast interrupt handlers gets demultiplexed through sched_ithd() and ithread_schedule(), so we do some calculations and bit shifting anyway; we may even have to repeat some. Anyway, interrupt handlers aren't called very often, and interrupt handler time is dominated by hardware access time on non-old machines, starting with the PIC/APIC accesses in Xintr*. We still do *PIC mask setting and EOI in Xintr*, but we do *PIC mask unsetting from C code. Bruce