Date: Thu, 27 Jan 2011 13:05:17 +0200 From: David Naylor <naylor.b.david@gmail.com> To: Alexander Kabaev <kabaev@gmail.com> Cc: freebsd-hackers@freebsd.org, Mark Saad <nonesuch@longcount.org> Subject: Re: rtld optimizations Message-ID: <201101271305.21510.naylor.b.david@gmail.com> In-Reply-To: <20110125234911.223d8f75@kan.dnsalias.net> References: <AANLkTikwHteyqMfMpy_B-AxQ5ZQ_Z3RKhkNpGN23fXtX@mail.gmail.com> <20110125234911.223d8f75@kan.dnsalias.net>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] On Wednesday 26 January 2011 06:49:11 Alexander Kabaev wrote: > On Tue, 25 Jan 2011 21:40:42 -0500 > > Mark Saad <nonesuch@longcount.org> wrote: > > Hello Hackers > > > > The NetBSD folks have a nice improvement with the rtld-elf subsystem, > > known as "Negative Symbol Cache" . > > > > http://blog.netbsd.org/tnf/entry/netbsd_runtime_linker_gains_negative > > > > Roy Marples roy@ has a simple write up of the change. > > > > I took the basic idea from FreeBSD, but improved the performance > > drastically. Basically, the huge win is by caching both breadth and > > depth of the needed/weak symbol lookup. > > Easiest to think of a,b,c,d as a matrix and FreeBSD just cache a row > > where we cache both rows and columns. > > > > Has anyone looked into porting the changes back to FreeBSD ? The > > improvement on load time for things like firefox, openoffice, and java > > is huge on NetBSD. It looks like this change could improve load times > > on FreeBSD in the same ways. > > This is a second time someone posts this to public mailing list and > curiously enough is a second time it suggested that someone else is to > do the investigation. From the quick look, the commit in question is > more or less a direct rip-off of Donelists we had for ages and as > such is completely over-hyped. The only extra quirk that said commit > does is an optimization of a dlsym() call, which is hardly ever in > critical performance path. Said optimization is trivial and easy to > try. Here you have it: > http://people.freebsd.org/~kan/rtld-symlook-depth.diff > > Since it only applies to dlsym, it only affects programs that are heavy > plugin users, which I suppose is the category OpenOffice and firefox > both fall into. Care to do some benchmarks with and without the > patch and report the results? I frankly doubt that you'll see any > noticeable difference compared to our stock rtld's performance. I benchmarked the impact said patch has on the boot-time of my system. I timed the boot-time to when KDE launches autostart programs and once all programs have loaded (I run a few extra programs, such as amarok). The latter measure requires human action thus it has extra, human, variance in its measure. I tried an older version of rtld (about 2 months old), current version of rtld and the new (patched) rtld. I ran each test three times. There was little variance in the tests and I am confident that there is no difference between the different rtld versions and my boot-time. Here is a summary of my boot times (in seconds). First measure is when KDE autostarts programs, the latter is when I determined when all programs had launched. rtld-old: 69 96 rtld: 69 94 rtld-new: 69 94 Please note that kernel boot time is approximately 10 seconds and kdm is delayed by about 10 seconds thus 20 seconds can be removed from above numbers to determine non-kernel boot wall-time. I would like to add that the blog entry claims a substantial improvement for some use cases. Is it not worth to optimise these fringe cases as one mans fringe case is another mans normal case (or woman as one prefers)? [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (FreeBSD) iEYEABECAAYFAk1BUXEACgkQUaaFgP9pFrJbSgCggF7p2zHoGI7vTAYqTrfeIb6r 37oAnR4OPPQZ+uLWBMZx1tpzoDi9Vfkn =NgxZ -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101271305.21510.naylor.b.david>
