[Softdevice-devel] Profiling tools
marko.makela at hut.fi
Wed Apr 6 09:21:11 CEST 2005
On Tue, Apr 05, 2005 at 11:48:21PM +0200, Stefan Lucke wrote:
> On Dienstag, 5. April 2005 23:12, Marko Mäkelä wrote:
> > On Tue, Apr 05, 2005 at 10:35:14PM +0200, Martin Wache wrote:
> > > The results are somehow similar to yours... I don't want to post a
> > > profiling now since it also contains all vdr functions and is realy huge.
> > > And I found the reason for the Action() mystery: it seems that when one
> > > calls usleep() with smaller values than 10000 it waits in a busy loop. I
> > > thought it would just schedule the smallest possible time...
> > I believe that the granularity of usleep() used to be around 20 milliseconds,
> > due to some constraints of the scheduler. Maybe that's why it's
> > busy-waiting.
> Which kernel version do you use ? 2.6.x ? On vdr list there were some
> discussions according to usleep() below 2000 (2ms). On my system with
> kernel 2.4.27pre5 uslee(x) seems to last at least 10000 µsecs.
I'm using 188.8.131.52 with some video4linux patches. I haven't measured the
usleep() granularity on that kernel; I was simply quoting my past experience
from earlier kernels.
> ..::YUV() is required to copy from ffmpeg's buffer to dfb (locking the
> surface) before the actual copy is done. By this we have a buffer of
> the previous shown frame, if we enter pause mode and have to refresh
> OSD and still frame. YUV to RGB conversion is done in hardware.
The mystery calls in opannotate output seem to be memcpy() calls. I really
need to link everything statically in order to get meaningful results.
More information about the Softdevice-devel