[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0906261520030.23653@pianoman.cluster.toy>
Date: Fri, 26 Jun 2009 15:23:33 -0400 (EDT)
From: Vince Weaver <vince@...ter.net>
To: Ingo Molnar <mingo@...e.hu>
cc: Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Paul Mackerras <paulus@...ba.org>, linux-kernel@...r.kernel.org
Subject: Re: performance counter 20% error finding retired instruction count
On Fri, 26 Jun 2009, Vince Weaver wrote:
> From the best I can tell digging through the perf sources, the performance
> counters are set up and started in userspace, but instead of doing an
> immediate clone/exec, thousands of instructions worth of other stuff is done
> by perf in between.
and for the curious, wondering how a simple
prctl(COUNTERS_ENABLE);
fork()
execvp()
can cause 6000+ instructions of non-deterministic execution, it turns out
that perf is dynamically linked. So it has to spend 5000+ cycles in
ld-linux.so resolving the excecvp() symbol before it can actually execvp.
So when trying to get accurate profiles of simple statically linked
programs, you still have to put up with the dynamic loader overhead
because of the way perf is designed. nice.
Vince
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists