lkml.org 
[lkml]   [2002]   [Oct]   [13]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSun, 13 Oct 2002 21:08:30 +1000
FromJames Courtier-Dutton <>
Subjectkernel api for application profiling
Hello

I am helping to write a multi-media application that plays lots of 
different video and audio formats.
I would like to improve the performance of the program.
I wish to be able to make a function call to start a timer, and then 
later on in the program stop the timer and therefore gather information 
about how long a particular routine took.
The problem I have is that between start of timer and stop of timer, the 
kernel might task switch to another thread or process. I would like this 
kernel task switch to automatically stop the timer, and then restart it 
when I get CPU time returned. I cannot find any such API availiable 
currently in the linux kernel.
Also, as an extension to this, it would be nice to know which other 
tasks happened during the task switch. The reason I would like this, is 
so that I can tell if the time was taken reading data off the hard disk 
or instead time spent by X displaying/transfering to screen the next 
video frame. If too much time is being spent doing a task like reading 
from the hard disk, I would need to look into reducing the latency of 
that task. This might also highlight buggy modules that take up too much 
of a time slice. I have seen some task switches take 800ms away from my 
audio out thread, and therefore causing underruns on the sound hardware, 
that then causes glitches in the perceived audio coming from the speakers.

Also, the reason for the above requests is so that I can gather useful 
performance info without having to trawl through hugh global performance 
traces.

Can anyone help me?

Cheers
James



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:30    [W:0.505 / U:0.180 seconds]
©2003-2008 Jasper Spaans