Closed Bug 1185667 Opened 9 years ago Closed 1 year ago

[e10s] Spinner is shown when switching between tabs

Categories

(Firefox :: Tabbed Browser, defect)

defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
e10s - ---

People

(Reporter: alice0775, Unassigned)

References

Details

(Keywords: perf)

Steps To Reproduce:
1. Open link [1] in tab A 
2. Open link [2] in tab B 
3. Switch between tabs


[1] http://people.mozilla.org/~bgirard/cleopatra/#report=3116e22d6921407c7ffbecabfcc068671e970a47
[2] http://people.mozilla.org/~bgirard/cleopatra/#report=bb13dad4319806c7dcf9a677a2553ce310ef8095


Actual Results:
Spinner in contentarea is shown even even if loading have been completed.

Expected Results:
No spinner.
Keywords: perf
I don't see what the content process is doing in either profile - it's possible that the profiler started before the content process started.

In either case, it's clear that the parent is doing a ton of WebGL work in both of these profiles.
(In reply to Mike Conley (:mconley) - Needinfo me! from comment #1)
> I don't see what the content process is doing in either profile - it's
> possible that the profiler started before the content process started.
> 
> In either case, it's clear that the parent is doing a ton of WebGL work in
> both of these profiles.

You are misunderstood this.

The data of the links not concern this bug. Just a link of webpage.
And you should run Nightly without any addons(i,e newly created profile) to see the spinner.
Can you make sure the profiler is running when you switch tabs, and then dump the profile after you've seen the spinner? Also, make sure that you Start the Profiler _after_ the content process has started (so, if your content process crashes, you'll need to restart the Profiler).

The reason I ask this, is because there are no samples from the content process in the profiles you've supplied, which makes it difficult for me to know why it's being slow painting the content frame.
Flags: needinfo?(alice0775)
(In reply to Mike Conley (:mconley) - Needinfo me! from comment #3)
> Can you make sure the profiler is running when you switch tabs, and then
> dump the profile after you've seen the spinner? Also, make sure that you
> Start the Profiler _after_ the content process has started (so, if your
> content process crashes, you'll need to restart the Profiler).
> 

Not installed any addon, Gecho Profiler as well, just tested with newly created profice.


> The reason I ask this, is because there are no samples from the content
> process in the profiles you've supplied, which makes it difficult for me to
> know why it's being slow painting the content frame.

No, the data(profile) in these links did not related to this bug. just samples of web site.
Flags: needinfo?(alice0775)
You can see the spinner when switching tabs. This bug is affected to any webpages.
(In reply to Alice0775 White from comment #5)
> You can see the spinner when switching tabs. This bug is affected to any
> webpages.

I see. In order to diagnose what's occurring, I need profiles from the Gecko Profiler add-on, like what you supplied in comment 0, except that I need it to be running when you see the spinner.

So can you please install that add-on and dump those profiles for me? I'd like to see where the bottleneck is.
Flags: needinfo?(alice0775)
(In reply to Mike Conley (:mconley) - Needinfo me! from comment #6)
> (In reply to Alice0775 White from comment #5)
> > You can see the spinner when switching tabs. This bug is affected to any
> > webpages.
> 
> I see. In order to diagnose what's occurring, I need profiles from the Gecko
> Profiler add-on, like what you supplied in comment 0, except that I need it
> to be running when you see the spinner.
> 
> So can you please install that add-on and dump those profiles for me? I'd
> like to see where the bottleneck is.

profile when Switch between tabs:
http://people.mozilla.org/~bgirard/cleopatra/#report=566cf388125405705b9345aba5cdade3fe7b64d6
Flags: needinfo?(alice0775)
Ok, this is better. I can definitely see some slow painting going on there. Unfortunately, I don't see symbols for anything in xul.pdb.

Can I assume you're using Nightly (42)?
Flags: needinfo?(alice0775)
Yes, i am using Nightly42.0a1.
https://hg.mozilla.org/mozilla-central/rev/3a4bfa5d2d02
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0 ID:20150721030212
Flags: needinfo?(alice0775)
Hey BenWa, any idea why Alice isn't getting symbols here? The symbol server appears to be up...
Flags: needinfo?(bgirard)
Tried with yesterday Nightly42.0a1, and then Symbols are retrieved.
https://hg.mozilla.org/mozilla-central/rev/5df788c56ae7
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0 ID:20150720030213

http://people.mozilla.org/~bgirard/cleopatra/#report=83998e788bae9beaadea38d2b286dd9cb5e658e8

So, the symbol server seems do not ready for today's Nightly42.0a1.
Ok, this is much clearer - thank you! I guess the symbols for the most recent Nightly haven't been posted to the symbol server yet.

There is some horifically slow painting going on here... I'll keep the needinfo on BenWa.
Alice0775, in single-process Firefox, does the browser jank when switching between these two tabs?
Flags: needinfo?(alice0775)
Tested with disabled e10s:

No spinner displays, but switching between the tabs is slow and laggy. 
http://people.mozilla.org/~bgirard/cleopatra/#report=f9e6def4df446fee9d89c3226802eccb3bde8340
Flags: needinfo?(alice0775)
Ok, so from these profiles, this seems like a general slow painting bug, rather than an e10s bug.

Alice - are you using non-default font settings? I ask, because it looks like a lot of the slow painting samples seem to do with drawing font glyphs.

How long have you been seeing this?

And, to confirm, it doesn't matter which two sites you visit, they'll all cause the spinner like this?
Flags: needinfo?(alice0775)
(In reply to Mike Conley (:mconley) - Needinfo me! from comment #15)
> Ok, so from these profiles, this seems like a general slow painting bug,
> rather than an e10s bug.
> 
> Alice - are you using non-default font settings? I ask, because it looks
> like a lot of the slow painting samples seem to do with drawing font glyphs.
> 

I use Meiryo font insted of MS Gothic.(but Meiryo is Windows8.1 default)

> How long have you been seeing this?

Since default e10s enabled(approx 2-3 months).

> 
> And, to confirm, it doesn't matter which two sites you visit, they'll all
> cause the spinner like this?

Steps to reproduce:
1. Open http://www.w3.org/TR/DOM-Level-3-Events/ in Tab A
   wait to completion of loading
2. Open http://edition.cnn.com/videos/ in Tab B
   wait to completion of loading
3. Wait for 10-20minitutes (Tab B is selected)
4. Attept to switch to Tab A
   --- Spinner is shown


Steps to reproduce:
1. Restore Previous Session(10-15tabs)
2. Switch tabs between already restored tabs
   --- Spinner is shown
Flags: needinfo?(alice0775)
Reproducible: not 100% but often
Flags: needinfo?(bgirard)
(In reply to Alice0775 White from comment #11)
> Tried with yesterday Nightly42.0a1, and then Symbols are retrieved.
> https://hg.mozilla.org/mozilla-central/rev/5df788c56ae7
> Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
> ID:20150720030213
> 
> http://people.mozilla.org/~bgirard/cleopatra/
> #report=83998e788bae9beaadea38d2b286dd9cb5e658e8
> 
> So, the symbol server seems do not ready for today's Nightly42.0a1.

This profiles show that we're spending ~3 seconds for a paint, the bottlenecks seems to be drawing text. When APZ gets enabled this might get worse because we will be painting some of the text that is slightly outside the screen.

The bottleneck is in D2D1. I'd suggest turning that off to see if it reproduces. If it does then we can morph this into 'D2D1 slow text drawing'. IIRC you want to change 'gfx.content.azure.backends;cairo' or something similar. Please collect another profile to double check that D2D1 is not being hit anymore.

Is it only slow on tab switch or is scrolling -very- janky on that page?
Flags: needinfo?(alice0775)
It is slightly improved by disabling the Direct2d.

gfx.canvas.azure.backends;direct2d,skia,cairo
gfx.content.azure.backends;direct2d,cairo
spinner is shown
http://people.mozilla.org/~bgirard/cleopatra/#report=66d48d5eb6fd311abb491da7971d658efdeeb200


gfx.canvas.azure.backends;cairo
gfx.content.azure.backends;cairo
spinner is shown but it is short period than default.
http://people.mozilla.org/~bgirard/cleopatra/#report=85e638abb201c16d6a717f08dcfd2d422037b0af


gfx.direct2d.use1_1;false
spinner is shown
http://people.mozilla.org/~bgirard/cleopatra/#report=0b649e8055909a98999777e36d7fa188421b8767


gfx.direct2d.disabled;true
spinner is shown but it is short period than default.
http://people.mozilla.org/~bgirard/cleopatra/#report=6163cf7372199cd9bedf1131204343250f45560f



> Is it only slow on tab switch or is scrolling -very- janky on that page?

The cleopatra sampler pane scrolling is janky, but it is allowable for me.


(Anyway, the spinner is ugly UX, because these pages are have already been loaded and rendered before.)
Flags: needinfo?(alice0775)
This doesn't sound e10s-specific, although the behavior is different. With e10s we show the spinner, while with non-e10s we just jank real hard
(In reply to Brad Lassey [:blassey] (use needinfo?) from comment #20)
> This doesn't sound e10s-specific, although the behavior is different. With
> e10s we show the spinner, while with non-e10s we just jank real hard

> we show the spinner

It feels stupid way. The Jank is BETTER line non-e10s

I must say "e10s must be abandon".
The problem isn't D2D specific. Alice can you get a profile of us scrolling that page quickly?

From the profile it doesn't seem to be specific to tab switch (just slow text draw performance) so I'd like to confirm if it is or isn't.

ni?jdaggett, this is a pretty severe amount of time spent in text drawing for a relatively simple looking page. Any idea what it would be so bad?
Flags: needinfo?(jdaggett)
Flags: needinfo?(alice0775)
Gecko Profiler cannot retrieve symbols now?

Anyway, when enabled Gecko Profiler, scrolling the samples pane is extremity slooooow
Flags: needinfo?(alice0775)
What about scrolling 'http://www.w3.org/TR/DOM-Level-3-Events/' with and without the gecko profiler?
http://www.w3.org/TR/DOM-Level-3-Events/

No problem, it is smoothly scrolled with/without gecko profiler.
(In reply to Benoit Girard (:BenWa) from comment #22)
> The problem isn't D2D specific. Alice can you get a profile of us scrolling
> that page quickly?
> 


Profile when I sroll samples pane of link [1] of comment#1
http://people.mozilla.org/~bgirard/cleopatra/#report=4db6621af0fc392e8be8e6f81b40685d4b52135e
(In reply to Benoit Girard (:BenWa) from comment #22)

> ni?jdaggett, this is a pretty severe amount of time spent in text drawing
> for a relatively simple looking page. Any idea what it would be so bad?

I see all the text draw calls in the profile but could you point me at the precise testcase you're looking at? Does it require more than one tab to occur?
Flags: needinfo?(jdaggett)
STR

1. Open followings in new tabs
        http://deadspace.wikia.com/wiki/The_Hunter.
        http://deadspace.wikia.com/wiki/Wheezer
        http://deadspace.wikia.com/wiki/Split_Face
        http://deadspace.wikia.com/wiki/Exploder
2.Switch tabs

Actual Results:
Spinner in contentarea is shown even even if loading have been completed.
The problem does not happens if disabled e10s.

Expected Results:
No spinner.
Summary: [e10s] Spinner is shown when sitchng between tabs → [e10s] Spinner is shown when switchng between tabs
Whiteboard: [Dupe me]
Version: 42 Branch → Trunk
FWIW, I suspect this will be fixed once bug 1279086 (re)lands.
Depends on: 1279086
Bug 1279086 only helps if JS is slowing down tab switching. This seems to be caused by slow text drawing.
Ah, thanks.
No longer depends on: 1279086
Summary: [e10s] Spinner is shown when switchng between tabs → [e10s] Spinner is shown when switching between tabs
I believe this may be closed now. I have been using Firefox 57 beta on a low-end laptop for the last weeks and have only seen the spinner very few times when pages were still being loaded.
Ok I just had it again, but for only 50-500 ms I'd say: Firefox 62.0.3, installed on my slow C: HDD drive, but the FF profile I'm using is on a fast PCI-e SSD (K:). I was doing something (strong C: i/o operations from another program) while FF was in background, "inactive". I Alt-tab back into FF (instantly, fine), then click another tab, then spinner came. My guess: FF is waiting for some I/O operation on the Firefox installation drive (slow C: HDD for me), because my active FF profile is on the superfast PCIe SSD K: .
Is it planned to soon narrow this down to the cause? (my theory in Comment 34 , which would mean that Firefox.exe waits until some Firefox related HDD-write-operation is completed, and only then loads the content of a new tab?)
We still have 29% of all users experiencing it since almost 5 months now. (since july, according to the statistics https://mikeconley.github.io/bug1310250/ )
Flags: needinfo?(mconley)
What does the "Lo-end Machine Adjust" mean, is there a bugzilla bug about this?

Mass-removing myself from cc; search for 12b9dfe4-ece3-40dc-8d23-60e179f64ac1 or any reasonable part thereof, to mass-delete these notifications (and sorry!)

Severity: normal → S3

Are you still experiencing this?

Flags: needinfo?(mconley) → needinfo?(alice0775)

No longer reproduced on Firefox110-112.0a1 Windows10. Thanks.

Status: NEW → RESOLVED
Closed: 1 year ago
Flags: needinfo?(alice0775)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.