On 6/19/2010 11:36 AM, iMx wrote:
Ive been playing around with a few in particular, however what i ideally need 
is when it hits 100 w% to then capture what the driver is doing, otherwise my 
data gained is clogged up with information from when the card is running ok; 
not during the 4-5 seconds blocking.
As a starting point, it seems like you'd want to know which underlying operation was taking so much time. There are three possibilities:
1. A single function could be taking forever to complete
2. A pair of functions (acquire/release, start/finish) could take a long time to complete 3. A set of functions is being called too many times, and the cumulative time is long

Normal profiling should identify #3 fairly quickly (count up how often a profile probe catches functions and output/reset the result every few seconds)

#1 (and #2 if you know what pair to look for...) can be identified by saving a timestamp at the start and spamming stdout whenever finish-start is over some threshold.

If you've got a #2 case on your hands, there's almost certainly some #1 which contains it (even if in userspace), so you could start with that and drill down.

Start with that and see what suggests itself from there. You could also imagine all kinds of mixing and matching... track profile information whenever a suspected function is in-progress... use speculative tracing to print info only when it turns out that your threshold conditions have been met, etc.

Hope that helps,
Ryan

_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to