Search the web
Sign In
New User? Sign Up
pinheads · Pin Dynamic Binary Instrumentation Tool
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
High pin overhead on Windows   Message List  
Reply | Forward Message #4074 of 4500 |
Re: [pinheads] Re: DynamoRIO tool platform now open source under BSD license

On Fri, Jul 3, 2009 at 5:30 AM, Cownie, James H <james.h.cownie@...> wrote:

 If you really don’t know even dynamically what you need, then I don’t think there is a solution. That case seems to me to be the result of bad design of your interface to your clients. You’ve promised them something which is too expensive to deliver…

It's expensive only if you think within the current design constraints of Pin.

To me, logic dictates that whatever information you have when you emit the instrumented code is information you can store and make accessible later. Thus, with some space overhead, Pin could provide information on demand with zero time overhead for the common case, and with an overhead that's proportional to the amount of information needed if information is in fact accessed.  (I would tolerate some inaccuracy - for instance, I wouldn't insist that you report the values of registers that are dead in the original code and which the instrumented code thus doesn't maintain, etc.)

Robert is correct that there's an common vs. uncommon question when at least some of the states is accessed most of the time, but clever design of data structures might be able to ameliorate that. It's clear that what Pin currently does - inlining dozens of instructions to pass the state to an outlined function - is very inexpensive and led to the 3x slowdown. ("complex inlinable functions" notwithstanding.)

On a related note, some tasks are extremely difficult, or even impossible, to implement in Pin because you don't have access to the compiler: a simple gen/kill analysis for each trace, for instance. And doing it dynamically at runtime kills you for the reasons listed above. That at least should not be an issue with DynamoRIO because it provides source for its instrumentation framework.

 - Godmar



Fri Jul 3, 2009 11:54 am

godmarback
Offline Offline
Send Email Send Email

Forward
Message #4074 of 4500 |
Expand Messages Author Sort by Date

Wandering way off the thread topic... Our application was a middleware layer that would allow higher-level tools to be built [1]. We built, for instance, a...
Cownie, James H
jim.cownie
Offline Send Email
Jul 3, 2009
9:31 am

... It's expensive only if you think within the current design constraints of Pin. To me, logic dictates that whatever information you have when you emit the ...
Godmar Back
godmarback
Offline Send Email
Jul 3, 2009
11:54 am

... Typed too fast here: meant "is very expensive and led to the 3x orders of mag slowdown". We disassembled at the time what Pin was emitting. Thinking about...
Godmar Back
godmarback
Offline Send Email
Jul 3, 2009
2:11 pm

Ø To me, logic dictates that whatever information you have when you emit the instrumented code is information you can store and make accessible later. Thus,...
Cohn, Robert S
rscohn2000
Offline Send Email
Jul 3, 2009
2:33 pm
 First  |  |  Next > Last 
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help