Re: [DynInst_API:] Perturbation caused by instrumentation


Date: Thu, 04 Jun 2015 10:57:26 -0500
From: Bill Williams <bill@xxxxxxxxxxx>
Subject: Re: [DynInst_API:] Perturbation caused by instrumentation
On 06/03/2015 10:43 PM, Marc Brünink wrote:
Dear all,

I just started to look into perturbation caused by instrumentation.
To this end I measure the execution time of a function with and without
instrumentation and compare the resulting distributions.

I attached 2 graphs:
a.pdf: execution without any instrumentation
b.pdf: execution with instrumentation

I instrument the entry point of a function and add a call to a
different, empty function. The function is called at a single location.
I was wondering whether anyone can make a good guess about why there is
a plateau at 4e-7 in b.pdf

Setting any of the set* function to non-default values, e.g. switching
off delayed parsing, did not change anything. The behaviour is very
reproducible.

There might be quite a few things going on here. But maybe someone can
make an educated guess and point me at the right direction?

The obvious first things to check are perturbations of the various caches, particularly the instruction cache. You may as well diff the other plausible performance counters (data cache, branch mispredictions) while you're at it, but I'd expect a difference in icache misses that accounts for the majority of the difference between the wall clock (B-A) and the instructions retired (B-A), both at a macro and micro level.

(I'd also be interested to see a similar histogram of the difference between B and A.)
Marc


_______________________________________________
Dyninst-api mailing list
Dyninst-api@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api



--
--bw

Bill Williams
Paradyn Project
bill@xxxxxxxxxxx
[← Prev in Thread] Current Thread [Next in Thread→]