Please find my responses inline.

On Mon, Jul 21, 2014 at 1:48 PM, Bill Williams <b...@cs.wisc.edu> wrote:

> On 07/21/2014 11:52 AM, Matthew LeGendre wrote:
>
>>
>> Presumably you're running the CodeCoverage tool in two steps: 1)
>> Rewriting the binary 2) Running the rewritten binary.  All of the
>> analysis/rewriting overheads are in step 1, and the instrumentation
>> overhead can be measured just by timing step 2.
>>
>
That's true.


>
>> If you're getting 50x overhead on just step 2 then something's very
>> wrong. I've got my own codeCoverage tool (which I unfortunately can't
>> share yet) and I only see 10% overhead.
>>
>>  Hrm. If this is with a prebuilt, statically linked binary and not with a
> build from source against current Dyninst, we may also be hitting traps in
> an inner loop. That's more the right order of magnitude than trampguards
> would be--trampguards would be in the 1.5-5x sort of neighborhood off the
> top of my head.
>

In fact that was the use case I had in my mind. But I was just checking the
static rewriting case first up since it was readily available with
code-coverage tool.


> The source for CodeCoverage (which you can build against the latest
> Dyninst and be reasonably sure of *not* hitting traps in almost all of
> SPEC) is in our tools.git repository. I know we've fixed some performance
> regressions that turned up between the AWAT paper and 8.1.2.
>

I am using dyninst 8.1.2 which I built from source.

>
>
>> Just an educated guess--I frequently see big overheads associated with
>> trampoline guards.  Dyninst should have realized trampoline guards are
>> unnecessary for codeCoverage and not emited them.  But if something went
>> wrong you can manually turn them off by putting a call to:
>>
>>    bpatch.setTrampRecursive(true);
>>
>
Tried it without any success :(


>
>> Near the top of codeCoverage.C's main() function.  If that makes a
>> difference then let the list know.  That implies there's a bug that
>> should be investigated.
>>
>
Any ideas on how to debug this?

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

Reply via email to