Re: prelink performance gains

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 17 Oct 2013 00:16:35 +0200, Robert Relyea wrote:
> prelink throws rocks at a lot of packages that have to check the
> integrity of the shared libraries they are using. It provides no real
> useful way of assisting in those tasks,

It provides 'prelink -y' only for exactly that purpose.
There is a bug in -y; but it does not work in some (rare) cases.
  https://bugzilla.redhat.com/show_bug.cgi?id=666143
Workaround of that bug is one line of code, it just has not been accepted yet.


> and we can't meaningfully
> measure or observe the performance gains. You will need to strongly show
> the latter, because the cost it forces on other packages is unbearable.

Here is another measurement.  I do not agree with the initial post's approach
as (1) It flushes disk cache.  That has no meaning for prelink measurement, it
just adds more fuzziness to the results and it is even unreal representation
of real world use cases.  (2) It runs big end-user GUI application.  This adds
various interactions with X and the applications has its own heavy startup
cost, it all also adds fuzziness to the results.  (3) When we look at global
GNU/Linux market its end user deployment (*Office) is not relevant, server
side execution matters.  => It all seems to me as intentionally chosen just to
prove prelink gain is not measurable.

Therefore I made IMO a more real world measurement with: time gdb/configure
Particularly:
	for i in `seq 1 20`;do git clean -dfx &>/dev/null;sync;sleep 6;(time ./configure &>/dev/null) 2>&1|grep ^real|tee -a /tmp/times;done

To make clear why such test matters.  Running configure scripts has become the
major builds bottleneck in recent days as it cannot be parallelized on
multicore and multinode machines.  For GDB it takes now 56% (of 1m37.380s) of
the whole compilation time.  And be sure developers are running configure by
orders of magnitude more times than *Office (or even LaTeX).

without prelink (in seconds):
	54.832 54.099 55.122 54.704 54.228 54.728 54.240 53.914 54.878 54.308
	54.461 53.859 54.311 53.964 53.958 54.712 54.498 53.924 54.988 54.502
	mean 54.4115 | standard deviation 0.39093
with prelink (in seconds):
	53.392 52.569 52.549 53.005 52.452 52.719 53.278 52.534 52.439 52.737
	52.571 52.656 53.142 52.671 52.555 52.973 52.483 52.369 53.246 53.128
	mean 52.7734 | standard deviation 0.31998
mean gain 1.6381 == 3.01%

Unfortunately I have to admit that does not mean much.  According to
	Observer Effect and Measurement Bias in Performance Analysis
	http://www.inf.usi.ch/faculty/hauswirth/publications/CU-CS-1042-08.pdf
completely unrelated environment conditions (like object files reorder) cause
up to 5% performance measurement bias; please read the PDF for the reasons.


> >> - FIPS foot-bullets
[..]
> 1. Some packages supports FIPS on the fly.

I do not know the FIPS prelink issues to be able to talk more about it.


> 2. FIPS isn't the only place you need to do sofware integrity checks.
> (see rpm).

rpm uses prelink -y so it already works in most cases and the rare cases can
be fixed in prelink.  The problem is its maintainer Jakub has more significant
work to do nowadays.


> If prelink provided noticeable improvement,

It depends whether 3% (of configure time); or rather 1.69% of total build time
matters or not.  If it is relevant for example more expensive i7-4771 is just
3% faster than i7-4770.


> I would say we put the resources into prelink to make it play more nicely
> with these integrity systems, but since it doesn't, the more rational
> approach is have it go away.

According to the numbers above my conclusion is different.

I agree there remains some work on prelink itself and some packages around to
make prelink relevant again for the predominant notebook market nowadays.
	prelink performance gains [summary]
	https://lists.fedoraproject.org/pipermail/devel/2013-October/190309.html


Thanks,
Jan
-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux