[Bug 281526] Re: Flash uses 100% CPU after resuming from suspend

Adam Porter adam+launchpad at alphapapa.net
Sun Mar 7 21:44:37 UTC 2010


Curiously, sometimes these Flash and AIR processes don't jump to 100%
immediately, but wait until a few minutes after resuming.

This seems to be exposing a strange bug in the kernel (I'm using Hardy
8.04 on a Core 2 Duo system).  When one of these processes goes nuts,
one core gets pegged at 100%, with most of that 100% going to the Flash
process.  The other core can be at a low utilization, less than 50%.
But other processes on the system seem to not migrate to the less-busy
core, and the Flash process starves these other, seemingly unable-to-
migrate processes.  The result is that, for example, the audio in a
video will suddenly stop playing, or the opposite, the video in a video
will stop playing, while the audio continues.  This happens even when
watching a local video in Mplayer, not just when watching a Flash video
--if there's a Flash process in the background (like the little Flash
applet that Gmail uses to play chat sounds), and it goes nuts, the
Mplayer process suffers because it doesn't migrate to the other, nearly-
idle core.  But as soon as I kill the misbehaving Flash process,
everything returns to normal.  As far as I can tell, if the other
processes would migrate to the core that's not servicing the wide-open-
throttle Flash process, they'd have plenty of CPU time.

I recall in the past--perhaps before the CFS kernel scheduler--the
kernel would adjust the priority of a process depending on how long it'd
been running at high CPU usage.  For example, if a process at nice 0 had
been running at 100% for several minutes, its priority would gradually
change so that other nice-0 processes could have bursts of 100% usage.
The kernel would seem to assume that if a process had been using 100% of
the CPU for a while, it would be doing a long job, and it would make
sense to give other processes short-term priority.  However, this is not
the case anymore: a process can be at 100% for a long time and its
priority never changes.  This causes these rogue Flash processes to
starve other processes for CPU time until the rogue process is killed.

Do I need to change my CPU scheduler until this is fixed in Flash?  Is
there a fix that can be applied to the kernel, or a runtime setting that
can be changed?

-- 
Flash uses 100% CPU after resuming from suspend
https://bugs.launchpad.net/bugs/281526
You received this bug notification because you are a member of Kernel
Bugs, which is subscribed to linux-meta in ubuntu.




More information about the kernel-bugs mailing list