Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Jul 2003 15:52:41 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        cvs-all@FreeBSD.org
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
Message-ID:  <20030722225241.GA61493@athlon.pn.xcllnt.net>
In-Reply-To: <15381.1058909578@critter.freebsd.dk>
References:  <3F1DA5B9.A877E8D9@imimic.com> <15381.1058909578@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jul 22, 2003 at 11:32:58PM +0200, Poul-Henning Kamp wrote:
> 
> 	   text    data     bss     dec     hex filename
> inlined:  17408      76     420   17904    45f0 vm_object.o
> regular:  14944      76     420   15440    3c50 vm_object.o
>           -----
> 	   2464
> 
> At least I find that 2k+ code is a non-trivial amount which is
> likely, through prefetch and cache flushing, to have a negative
> performance impact.

Oh?

vm_object_backing_scan() has 3 call-sites. Each of the call-sites
has numerous calls to other functions that may or may not be
predicted right, prefetched right or mess up the instruction or
unified caches. While the inlined code yields a larger amount of
text, I find it hard to claim that this by itself overshadows the
performance advantages of increased ILP, improved scheduling due
to dead-code elimination, better cache behaviour due to increased
locality, branch misprediction avoidance, call overhead avoidance,
or just plain better PRE (partial redundant expression elimination),
GCM (global code motion), GVN (global value numbering) or RA
(register allocation).

Although I do support the removal of the inline keyword to allow
-Werror again and also to provide a sensible (though pessimistic)
starting point for reintroducing some of them, I do not think
there's any ground to use performance gains or losses to defend
the removal of the inline keyword without also providing the
results of measurements performed on all platforms (ok, all tier
1 platforms).

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030722225241.GA61493>