[OpenIndiana-discuss] Performance problem with Flash & Firefox 4.0 b10
Bill Sommerfeld
sommerfeld at alum.mit.edu
Sat Feb 12 17:40:17 UTC 2011
On 02/01/11 12:14, Hillel Lubman wrote:
> After upgrading to Frefox 4.0 b10 and Flash plugin 10.1 r102 on OpenIndiana
> oi_148, Flash started to consume close to 100% CPU when activated, as well
> as crashing quite often. Is it a known issue?
I've seen this with Firefox 4.0b10 and Firefox 4.0b11.
truss shows lots of yield() system calls (mpstat suggests over 300k per
second). pstack shows the following stack traces:
: 2 %; c++filt </tmp/ffloop
----------------- lwp# 12 / thread# 12 --------------------
fe920e67 yield (d7591ac0, f3bf21a0, f0affde8, 0, e7eea168,
fea6d3dc) + 7
fea4ae3a PR_Sleep (0) + a2
fcfe4693 unsigned mozilla::storage::AsyncExecuteStatements::Run()
(d4794290, 1, f0affed8, 0) + 2e3
fd5fcf33 unsigned nsThread::ProcessNextEvent(int,int*) (e7efc880, 1,
f0afff3c, fd57a580) + 22f
fd57a5b5 int NS_ProcessNextEvent_P(nsIThread*,int) (e7efc880, 1,
f0afff6c, fd5fbdd4) + 45
fd5fbe48 void nsThread::ThreadFunc(void*) (e7efc880) + 94
fea49be1 _pt_root (e7eed6a0, fe9ae000, f0afffe8, fe91c03e) + c9
fe91c093 _thrp_setup (f9a75a40) + 9b
fe91c320 _lwp_start (f9a75a40, 0, 0, 0, 0, 0)
----------------- lwp# 20 / thread# 20 --------------------
fe920e67 yield (c0af65c0, f3bf21a0, e69fede8, 0, e7cab688,
fea6d3dc) + 7
fea4ae3a PR_Sleep (0) + a2
fcfe4693 unsigned mozilla::storage::AsyncExecuteStatements::Run()
(de313f10, 1, e69feed8, 0) + 2e3
fd5fcf33 unsigned nsThread::ProcessNextEvent(int,int*) (e7cd2280, 1,
e69fef3c, fd57a580) + 22f
fd57a5b5 int NS_ProcessNextEvent_P(nsIThread*,int) (e7cd2280, 1,
e69fef6c, fd5fbdd4) + 45
fd5fbe48 void nsThread::ThreadFunc(void*) (e7cd2280) + 94
fea49be1 _pt_root (e7699080, fe9ae000, e69fefe8, fe91c03e) + c9
fe91c093 _thrp_setup (f9a79a40) + 9b
fe91c320 _lwp_start (f9a79a40, 0, 0, 0, 0, 0)
I downloaded the firefox source. The code suggests that sqlite is
returning SQLITE_BUSY errors to the AsyncExecuteStatements code, and
it's busy-looping -- calling PR_Sleep(0).
I haven't looked at why sqlite would return SQLITE_BUSY yet, but this is
at least consistent with url completion not working when the process
gets into this stuck state.
as an experiment I've hot-patched my running binary to change it to a
PR_Sleep(1) (don't have a build environment set up to build firefox..)
so it shouldn't burn as much cpu.
- Bill
More information about the OpenIndiana-discuss
mailing list