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

 
 

bug #32586: CPU busied in low-bandwidth situation

Submitted by:  Bastiaan Jacques <bjacques>
Submitted on:  Wed 23 Feb 2011 10:51:14 PM UTC  
 
Category: coreSeverity: 3 - Normal
Release: NoneStatus: Confirmed
Privacy: PublicAssigned to: None
Open/Closed: Open

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Thu 24 Feb 2011 12:23:36 PM UTC, comment #9:

More on the DNS thing:
https://savannah.gnu.org/bugs/?31235#comment2

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...)
http://marc.info/?l=gnash-dev&m=128289903628873

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:
4006e6d610421d15a65e92019587512526583bf3

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:

URL in submission is supposed to be http://cdn.optmd.com/V2/73952/203826/mor_13fifty_v1_728x90_cas.swf

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:

STR:
(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 File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

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

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follows 1 latest change.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 24 Feb 2011 10:36:26 AM UTCbwyAssigned tobwy=>None

    Back to the top


    Powered by Savane 3.1-cleanup