bugGnash - The GNU Flash player - Bugs: bug #32586, CPU busied in low-bandwidth...


bug #32586: CPU busied in low-bandwidth situation

Submitter:  Bastiaan Jacques <bjacques>
Submitted:  Wed 23 Feb 2011 10:51:14 PM UTC
Category:  core Severity:  3 - Normal
Release:  None Status:  Confirmed
Privacy:  Public Assigned to:  None
Open/Closed:  Open
* Mandatory Fields

Add a New Comment (Rich Markup)

Comment Type & Canned Response:
       No canned response available


( Jump to the original submission )

Thu 24 Feb 2011 12:23:36 PM UTC, comment #9: 
Sandro Santilli <strk>
Project Member
Thu 24 Feb 2011 12:18:09 PM UTC, comment #8: 

I belive it was an attempt to drop random sleeps, considered a waste of time.

From the "sleeps are bad" dept.

BTW, I've found the thread about the DNS issue.
The reporter also suggest to "sleep" (while the current code,
in case of DNS resolving lag, doesn't even select...)

Sandro Santilli <strk>
Project Member
Thu 24 Feb 2011 11:44:50 AM UTC, comment #7: 

I don't remember any more. If the commit messages or discussion on the list at that point don't give any information the reason is probably lost.

Benjamin Wolsey <bwy>
Project Member
Thu 24 Feb 2011 11:40:53 AM UTC, comment #6: 

What was the reason for introducing select()?

Bastiaan Jacques <bjacques>
Project Member
Thu 24 Feb 2011 10:36:26 AM UTC, comment #5: 

If a fixed-time sleep is better, use it.

Benjamin Wolsey <bwy>
Project Member
Thu 24 Feb 2011 10:29:49 AM UTC, comment #4: 

`cause you replaced the fixed-time sleep with the select:

Sandro Santilli <strk>
Project Member
Thu 24 Feb 2011 10:21:35 AM UTC, comment #3: 

Why is this assigned to me?

Benjamin Wolsey <bwy>
Project Member
Wed 23 Feb 2011 11:04:43 PM UTC, comment #2: 
Bastiaan Jacques <bjacques>
Project Member
Wed 23 Feb 2011 10:53:48 PM UTC, comment #1: 

basically forcing longer sleeps we guarantee to have less calls to ::fillCache, with bigger chunks of data to crunch.

If this is desiderable, there might be no point in doing the select

Sandro Santilli <strk>
Project Member
Wed 23 Feb 2011 10:51:14 PM UTC, original submission:  


trickle -d 1  gui/.libs/lt-gtk-gnash http://cdn.optmd.com/V2/73952/203826/mor_13fifty_v1_728x90_cas.swf

(Trickle is a bandwidth limiter. Alternatively, if you have a router utterly devoid of QoS, like mine, you can simply start an upload rather than run trickle.)

You'll notice that CPU rises to 100% on at least two cores and stays there for quite some time.

After some debugging I've pinned the issue down to fillCache() busy-looping when data is available continuously. In a low-bandwidth situation, data trickles in for a long time, leading to little to no time spent waiting in select(). With this SWF, a bunch of threads are started at the same time, exacerbating the problem.

Sandro suggests that this could be fixed by reintroducing a sleep removed by 4006e6d610421d15a65e92019587512526583bf3.

Bastiaan Jacques <bjacques>
Project Member


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by bwy (Posted a comment)
  • -email is unavailable- added by strk (Posted a comment)
  • -email is unavailable- added by bjacques (Submitted the item)

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.





    Follows 1 latest change.

    Date Changed by Updated Field Previous Value => Replaced by
    2011-02-24 bwy Assigned tobwy None

    Back to the top

    Powered by Savane 3.9