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