[sldev] Linux 64 bit framerate stutter (0.5 - 2.0 second frame periodically [every 5 to 60 seconds])

Bane Darrow banedarrow at gmail.com
Thu Mar 13 01:03:31 PDT 2008


So I've been trying to use a custom build of the client on x86_64 gentoo.
They didn't have a package, so I decided to just build it myself. I should
point out my goal isn't to develop on the client, merely run it. Maybe add
some minor things over time.

<irrelevant  http://jira.secondlife.com/browse/VWR-5320 >
It's been fun getting it to work. First, just to compile in my environment,
then actually run, then watch movies with a friend I watch movies with.
Getting gstreamer to work, and allow seeking was pretty easy (seek() just
wasn't implemented on GStreamerMediaImpl). Tho I had to download the video
locally and hijack the URLs in order to seek. Apparently gnomevfs doesn't
allow seeking on a URL. (But the quicktime implementation on windows does
-sigh- This makes linux and windows feature-different)
</irrelevant>

Anyway, the latest issue is every 15 to 60 seconds, I get a couple frames
that take anywhere from half a second to 2 seconds. This is not a pleasant
experience. Especially for watching movies.

<irrelevant>
LLFastTimer doesn't work on x86_64 linux, since it uses some assembly, but
changing that to use gettimeofday() like the LL_DARWIN version does work
fine, so tracking this down I first had to fix that.
</irrelevant>

I finally traced it down to llurlrequest.cpp:process_impl where it calls
mDetail->mCurlRequest->perform(). That eventually calls through to
LLCurl::Multi::perform(), which calls curl_multi_perform(). From this point,
it's hard to debug, as I'm not sure the best places to add new LLFastTimer()
calls. It could either be getting stuck inside curl, or inside one of the
callbacks in linden code. Finding it is hard because the stutters aren't
long enough that I can break in and see where the PC is. I'm working blindly
with narrowing it down with LLFastTimers. I looked around in JIRA and found
http://jira.secondlife.com/browse/VWR-92. That looks suspiciously like what
I'm seeing, however Torley said it's fixed and the bug is resolved.

So, I guess what I'm asking.. is anyone familiar with this, or seen it? Is
VWR-92 actually fixed? And more generally... is anyone familiar enough with
the SL IOpump and curl to give some pointers on where I might want to add
some more LLFastTimers? How was VWR-92 fixed, so I can maybe start looking
there?

Any help appreciated.

Thanks
Bane
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/sldev/attachments/20080313/b0ef3113/attachment.htm


More information about the SLDev mailing list