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

Poul-Henning Kamp phk at phk.freebsd.dk
Tue Jul 22 16:06:22 PDT 2003


In message <20030722225241.GA61493 at athlon.pn.xcllnt.net>, Marcel Moolenaar writ
es:

>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).

The crucial point here is that nobody seems to have actually
run any performance test on this, and the complexity is
clearly way out of the "feynmann method" solution space.

>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).

The reason it was removed was, as I said earlier, to retain the
status quo (since GCC had ignored it).

We're arguing what it will take to actually start inlining that
function.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.


More information about the cvs-src mailing list