The e10s throbber

2015-04-07 Thread Benjamin Smedberg
With desktop e10s on there can be a noticeable delay after switching 
tabs where there is a throbber displayed before the page content.


Is the duration of this delay measured in telemetry anywhere, and do we 
have criteria for how much delay is acceptable in this case? If e10s 
were off, do we expect that this same delay would occur but would just 
show up as a jank switching tabs? Or is this a perf problem unique to e10s?


--BDS
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The e10s throbber

2015-04-07 Thread Vladan Djeric
e10s team will probably answer these questions better than I can...

Is the duration of this delay measured in telemetry anywhere,


I don't think any existing Telemetry probes measure this effect. We have
the FX_TAB_* histograms but I doubt they reflect the duration of the
tab-switch throbber animation.


 and do we have criteria for how much delay is acceptable in this case?


imho, the minimum requirement for e10s tab delay should be no worse than
non-e10s.


 If e10s were off, do we expect that this same delay would occur but would
 just show up as a jank switching tabs? Or is this a perf problem unique to
 e10s?


I don't think there's a comparable tab-switch delay in non-e10s. I have
seen this tab-switch animation appear for multiple seconds on e10s, whereas
I've never seen a tab-switch that slow on non-e10s.
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The e10s throbber

2015-04-07 Thread Bill McCloskey
On Tue, Apr 7, 2015 at 5:48 AM, Benjamin Smedberg benja...@smedbergs.us
wrote:

 With desktop e10s on there can be a noticeable delay after switching tabs
 where there is a throbber displayed before the page content.


When the user switches tabs, we allow the content process 300ms to send
layer information to the parent. During that time, we show the previous
tab. If no layers are received after 300ms, we show the spinner.


 Is the duration of this delay measured in telemetry anywhere, and do we
 have criteria for how much delay is acceptable in this case? If e10s were
 off, do we expect that this same delay would occur but would just show up
 as a jank switching tabs? Or is this a perf problem unique to e10s?


We don't have telemetry yet. I've done some measurements and haven't found
any cases where tab switching consistently takes longer in e10s. However,
it's certainly possible that it does on average. Either way, it's hard to
investigate until we can reproduce the problem.

The switch is definitely more noticeable in e10s because non-e10s would
just jank. A spinner (especially a low-quality animated gif like the one we
have) is easier to notice than jank. We've considered a couple options for
tab switching in bug 632 that would improved perceived response time.
One is to cache the tab's background color and show that. Another is to
show some sort of screenshot of the tab, although that probably won't work
because it would take too much memory.

I think we probably want to use a longer delay than 300ms before we show
the spinner. We'd also like to look into why it takes so long to re-create
the layer tree when we switch to a tab. Sometimes it's caused by a janky
content process, but there may be some layout/gfx improvements we could
make too.

-Bill
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The e10s throbber

2015-04-07 Thread George Wright

On 2015-04-07 8:48 AM, Benjamin Smedberg wrote:
Is the duration of this delay measured in telemetry anywhere, and do 
we have criteria for how much delay is acceptable in this case? If 
e10s were off, do we expect that this same delay would occur but would 
just show up as a jank switching tabs? Or is this a perf problem 
unique to e10s?
We've discussed adding telemetry probes to measure page painting time so 
we can properly gauge what the impact is of e10s vs non-e10s. See 
https://bugzilla.mozilla.org/show_bug.cgi?id=1135719 for the bug 
tracking page render time issues.


In terms of acceptable delay, the current working value is 300ms; as 
in, we fire off a request, wait up to 300ms, switch the tab if it's 
ready before 300ms, or show the spinner after 300ms and switch the tab 
if content isn't ready. We've made a lot of changes to this code in the 
last two weeks so things should be noticeably better than it was before 
then.


As Bill said, non-e10s would just jank if we waited a noticeable amount 
of time for a page to render, but I think (based on gut feeling rather 
than any hard data) that e10s seems to be a little slower to paint than 
non-e10s. I haven't been able to confirm that or reproduce it reliably 
though.


The spinner is also temporary right now, and we're waiting on UX to 
provide us with an approved spinner in 
https://bugzilla.mozilla.org/show_bug.cgi?id=1049551. I don't know if 
they're ok with the one that's currently there but I wonder if the bug 
being marked as resolved is making them deprioritise it.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The e10s throbber

2015-04-07 Thread Till Schneidereit
On Tue, Apr 7, 2015 at 5:05 PM, Bill McCloskey wmcclos...@mozilla.com
wrote:

 I think we probably want to use a longer delay than 300ms before we show
 the spinner. We'd also like to look into why it takes so long to re-create
 the layer tree when we switch to a tab. Sometimes it's caused by a janky
 content process, but there may be some layout/gfx improvements we could
 make too.


I've been running with dom.ipc.processCount set to 10 for the last two
months or so. Before, I saw the throbber a lot, but with 10 content
processes, I can't remember seeing it at all recently. That's probably not
saying much about the reasons for seeing it with a single content process,
though.
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The e10s throbber

2015-04-07 Thread Luke Wagner

  I think we probably want to use a longer delay than 300ms before we show
  the spinner. We'd also like to look into why it takes so long to
 re-create
  the layer tree when we switch to a tab. Sometimes it's caused by a janky
  content process, but there may be some layout/gfx improvements we could
  make too.
 

 I've been running with dom.ipc.processCount set to 10 for the last two
 months or so. Before, I saw the throbber a lot, but with 10 content
 processes, I can't remember seeing it at all recently. That's probably not
 saying much about the reasons for seeing it with a single content process,
 though.


I have the same experience.  (On a side note, glitches aside, the
experience with dom.ipc.processCount1 is *incredibly* less janky,
something I only fully appreciated after using it for a while and then
running normal non-e10s FF.  I expect this is also the experience Chrome
users have when trying FF.)
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The e10s throbber

2015-04-07 Thread Bill McCloskey
On Tue, Apr 7, 2015 at 10:06 AM, George Wright geo...@mozilla.com wrote:

 We've discussed adding telemetry probes to measure page painting time so
 we can properly gauge what the impact is of e10s vs non-e10s. See 
 https://bugzilla.mozilla.org/show_bug.cgi?id=1135719 for the bug tracking
 page render time issues.


I started looking into adding probes, and it looks like we don't have very
good telemetry even for non-e10s tab switching. We measure the cost of
updateCurrentBrowser (in FX_TAB_SWITCH_UPDATE_MS) but that's only a part of
tab switching. We also try to measure the total switch time in
FX_TAB_SWITCH_TOTAL_MS. However, that only seems to be recorded for basic
layers, which almost no one uses anymore.

-Bill
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The e10s throbber

2015-04-07 Thread Gavin Sharp
 We don't have telemetry yet. I've done some measurements and haven't found
 any cases where tab switching consistently takes longer in e10s. However,
 it's certainly possible that it does on average. Either way, it's hard to
 investigate until we can reproduce the problem.

I see the spinner far too frequently. e10s tab switching is definitely
far worse than non-e10s for me. I can reproduce it fairly
consistently, though the STR seem to require loading my normal
many-tab session and frequent heavy use, so it's hard to reduce to
something easily replicable. How can I usefully debug this?

Gavin

On Tue, Apr 7, 2015 at 8:05 AM, Bill McCloskey wmcclos...@mozilla.com wrote:
 On Tue, Apr 7, 2015 at 5:48 AM, Benjamin Smedberg benja...@smedbergs.us
 wrote:

 With desktop e10s on there can be a noticeable delay after switching tabs
 where there is a throbber displayed before the page content.


 When the user switches tabs, we allow the content process 300ms to send
 layer information to the parent. During that time, we show the previous
 tab. If no layers are received after 300ms, we show the spinner.


 Is the duration of this delay measured in telemetry anywhere, and do we
 have criteria for how much delay is acceptable in this case? If e10s were
 off, do we expect that this same delay would occur but would just show up
 as a jank switching tabs? Or is this a perf problem unique to e10s?


 We don't have telemetry yet. I've done some measurements and haven't found
 any cases where tab switching consistently takes longer in e10s. However,
 it's certainly possible that it does on average. Either way, it's hard to
 investigate until we can reproduce the problem.

 The switch is definitely more noticeable in e10s because non-e10s would
 just jank. A spinner (especially a low-quality animated gif like the one we
 have) is easier to notice than jank. We've considered a couple options for
 tab switching in bug 632 that would improved perceived response time.
 One is to cache the tab's background color and show that. Another is to
 show some sort of screenshot of the tab, although that probably won't work
 because it would take too much memory.

 I think we probably want to use a longer delay than 300ms before we show
 the spinner. We'd also like to look into why it takes so long to re-create
 the layer tree when we switch to a tab. Sometimes it's caused by a janky
 content process, but there may be some layout/gfx improvements we could
 make too.

 -Bill
 ___
 dev-platform mailing list
 dev-platform@lists.mozilla.org
 https://lists.mozilla.org/listinfo/dev-platform
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Misunderstood the Assigned at bugs! Sorry !!!

2015-04-07 Thread Tobias B. Besemer
OK, to reopen this discussion ...

I suggested in Bug 1151371 to activate the status IN_PROGRESS in bmo and use 
this status for bugs that are in progress (patch in work) and that 
everybody use the status applied in future only as taken or as in the 
to-dos-list like the others do.
My arguments for this and reasons can be found in the bug.
Feedback welcome.

https://bugzilla.mozilla.org/show_bug.cgi?id=1151371
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The e10s throbber

2015-04-07 Thread andreas . gal

Counter-intuitively, having multiple content processes may use less memory than 
taking screenshots per tab. Especially if we use the same COW forking FFOS uses 
the overhead of a content processes should be very small, certainly less than a 
high resolution screenshot kept around. Not sure do what degree we can 
replicate on Windows what we do on FFOS to launch content processes. Why don’t 
we use more than 1 content process by default right now?

Thanks,

Andreas

 On Apr 7, 2015, at 12:50 PM, Ted Mielczarek t...@mielczarek.org wrote:
 
 On Tue, Apr 7, 2015, at 11:05 AM, Bill McCloskey wrote:
 On Tue, Apr 7, 2015 at 5:48 AM, Benjamin Smedberg benja...@smedbergs.us
 wrote:
 
 With desktop e10s on there can be a noticeable delay after switching tabs
 where there is a throbber displayed before the page content.
 
 
 When the user switches tabs, we allow the content process 300ms to send
 layer information to the parent. During that time, we show the previous
 tab. If no layers are received after 300ms, we show the spinner.
 
 
 Is the duration of this delay measured in telemetry anywhere, and do we
 have criteria for how much delay is acceptable in this case? If e10s were
 off, do we expect that this same delay would occur but would just show up
 as a jank switching tabs? Or is this a perf problem unique to e10s?
 
 
 We don't have telemetry yet. I've done some measurements and haven't
 found
 any cases where tab switching consistently takes longer in e10s. However,
 it's certainly possible that it does on average. Either way, it's hard to
 investigate until we can reproduce the problem.
 
 The switch is definitely more noticeable in e10s because non-e10s would
 just jank. A spinner (especially a low-quality animated gif like the one
 we
 have) is easier to notice than jank. We've considered a couple options
 
 So, assuming there's content script eating up cycles, right now the e10s
 case will essentially always be worse than the non-e10s case, right? In
 the non-e10s case the chrome JS for switching tabs will get hung up and
 result in jank, but then when it gets to run the repaint should be very
 fast because the layer tree is in-process. In the e10s case the chrome
 JS will run, then we wait on IPC for the layer tree which will be held
 up by the content JS, then we have to transmit the layer tree via IPC,
 and only then can we paint.
 
 Short of doing the layer IPC on a different IPC channel this doesn't
 seem fixable. Alternately we could focus on running 1 content process
 as others have noted, since that limits the content script problem to
 tabs running in the same process as the tab you're switching to.
 
 -Ted
 ___
 dev-platform mailing list
 dev-platform@lists.mozilla.org
 https://lists.mozilla.org/listinfo/dev-platform

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The e10s throbber

2015-04-07 Thread Ted Mielczarek
On Tue, Apr 7, 2015, at 11:05 AM, Bill McCloskey wrote:
 On Tue, Apr 7, 2015 at 5:48 AM, Benjamin Smedberg benja...@smedbergs.us
 wrote:
 
  With desktop e10s on there can be a noticeable delay after switching tabs
  where there is a throbber displayed before the page content.
 
 
 When the user switches tabs, we allow the content process 300ms to send
 layer information to the parent. During that time, we show the previous
 tab. If no layers are received after 300ms, we show the spinner.
 
 
  Is the duration of this delay measured in telemetry anywhere, and do we
  have criteria for how much delay is acceptable in this case? If e10s were
  off, do we expect that this same delay would occur but would just show up
  as a jank switching tabs? Or is this a perf problem unique to e10s?
 
 
 We don't have telemetry yet. I've done some measurements and haven't
 found
 any cases where tab switching consistently takes longer in e10s. However,
 it's certainly possible that it does on average. Either way, it's hard to
 investigate until we can reproduce the problem.
 
 The switch is definitely more noticeable in e10s because non-e10s would
 just jank. A spinner (especially a low-quality animated gif like the one
 we
 have) is easier to notice than jank. We've considered a couple options

So, assuming there's content script eating up cycles, right now the e10s
case will essentially always be worse than the non-e10s case, right? In
the non-e10s case the chrome JS for switching tabs will get hung up and
result in jank, but then when it gets to run the repaint should be very
fast because the layer tree is in-process. In the e10s case the chrome
JS will run, then we wait on IPC for the layer tree which will be held
up by the content JS, then we have to transmit the layer tree via IPC,
and only then can we paint.

Short of doing the layer IPC on a different IPC channel this doesn't
seem fixable. Alternately we could focus on running 1 content process
as others have noted, since that limits the content script problem to
tabs running in the same process as the tab you're switching to.

-Ted
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The e10s throbber

2015-04-07 Thread Robert O'Callahan
On Wed, Apr 8, 2015 at 6:27 AM, Gavin Sharp ga...@gavinsharp.com wrote:

  We don't have telemetry yet. I've done some measurements and haven't
 found
  any cases where tab switching consistently takes longer in e10s. However,
  it's certainly possible that it does on average. Either way, it's hard to
  investigate until we can reproduce the problem.

 I see the spinner far too frequently. e10s tab switching is definitely
 far worse than non-e10s for me. I can reproduce it fairly
 consistently, though the STR seem to require loading my normal
 many-tab session and frequent heavy use, so it's hard to reduce to
 something easily replicable. How can I usefully debug this?


Install the Gecko Profiler extension if you haven't already, and profile
your tab switching.

Rob
-- 
oIo otoeololo oyooouo otohoaoto oaonoyooonoeo owohooo oioso oaonogoroyo
owoiotoho oao oboroootohoeoro oooro osoiosotoeoro owoiololo oboeo
osouobojoeocoto otooo ojouodogomoeonoto.o oAogoaoiono,o oaonoyooonoeo
owohooo
osoaoyoso otooo oao oboroootohoeoro oooro osoiosotoeoro,o o‘oRoaocoao,o’o
oioso
oaonosowoeoroaoboloeo otooo otohoeo ocooouoroto.o oAonodo oaonoyooonoeo
owohooo
osoaoyoso,o o‘oYooouo ofolo!o’o owoiololo oboeo oiono odoaonogoeoro
ooofo
otohoeo ofoioroeo ooofo ohoeololo.
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Misunderstood the Assigned at bugs! Sorry !!!

2015-04-07 Thread Daniel Holbert
On 04/07/2015 01:15 PM, Tobias B. Besemer wrote:
 OK, to reopen this discussion ...
 
 I suggested in Bug 1151371 to activate the status IN_PROGRESS in bmo and 
 use this status for bugs that are in progress (patch in work) and that 
 everybody use the status applied in future only as taken or as in the 
 to-dos-list like the others do.
 My arguments for this and reasons can be found in the bug.

People already have inconsistent interpretations of what the bug
status field ASSIGNED vs NEW means (and inconsistent
levels-of-bothering-to-actually-tweak-the-flag). Adding an additional
IN_PROGRESS status will likely just make things more confusing --
particularly given that many people won't bother to set it, either
explicitly or accidentally.  (Why should they? It's extra process for
process's sake, and it'd arguably be a waste of their time.)

What is the problem you're trying to solve?  I think you're worried
about new contributors mistakenly thinking NEW means unassigned?  If
that's your concern, then (to the extent that's an actual problem) I
think it'd be better to focus on surfacing the assignee field, and
highlighting tools like Bugs Ahoy which these contributors should be
using in the first place.

I don't think adding an additional status (which will break existing
conventions  will be applied inconsistently) is going to help here.

~Daniel
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Misunderstood the Assigned at bugs! Sorry !!!

2015-04-07 Thread Karl Dubost
Daniel,

Le 8 avr. 2015 à 06:19, Daniel Holbert dholb...@mozilla.com a écrit :
 People already have inconsistent interpretations of what the bug
 status field ASSIGNED vs NEW means (and inconsistent
 levels-of-bothering-to-actually-tweak-the-flag).

(Sorry if it had already been discussed in the past, slap me with a URI with 
the past archived discussion about it.)

Agreed for the ASSIGNED vs NEW is bothering to set manually.
That said I never understood, why it was not tied to someone being assigned to 
the bug. Take this bug should flip automatically this field. Going back to 
nobody should put it back to NEW.

-- 
Karl Dubost, Mozilla
http://www.la-grange.net/karl/moz

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Nuwa on desktop

2015-04-07 Thread Robert O'Callahan
On Wed, Apr 8, 2015 at 8:00 AM, andreas@gmail.com wrote:

 Not sure do what degree we can replicate on Windows what we do on FFOS to
 launch content processes.


The Cygwin people have looked into fork() in Windows a bit. Some links:
http://www.cygwin.com/ml/cygwin-developers/2011-04/msg00036.html
https://github.com/kaniini/win32-fork/blob/master/fork.c
It doesn't look promising. Maybe if would work if we ever get to the point
where a content process doesn't need to use any Win32 APIs.

We might be able to do something Nuwa-like where Gecko subsystems use an
explicit shared data segment which is a copy-on-write view of a file.

Rob
-- 
oIo otoeololo oyooouo otohoaoto oaonoyooonoeo owohooo oioso oaonogoroyo
owoiotoho oao oboroootohoeoro oooro osoiosotoeoro owoiololo oboeo
osouobojoeocoto otooo ojouodogomoeonoto.o oAogoaoiono,o oaonoyooonoeo
owohooo
osoaoyoso otooo oao oboroootohoeoro oooro osoiosotoeoro,o o‘oRoaocoao,o’o
oioso
oaonosowoeoroaoboloeo otooo otohoeo ocooouoroto.o oAonodo oaonoyooonoeo
owohooo
osoaoyoso,o o‘oYooouo ofolo!o’o owoiololo oboeo oiono odoaonogoeoro
ooofo
otohoeo ofoioroeo ooofo ohoeololo.
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Nuwa on desktop

2015-04-07 Thread Jim Porter
On 04/07/2015 06:06 PM, Robert O'Callahan wrote:
 On Wed, Apr 8, 2015 at 8:00 AM, andreas@gmail.com wrote:
 Not sure do what degree we can replicate on Windows what we do on 
 FFOS to launch content processes.
 
 The Cygwin people have looked into fork() in Windows a bit. Some 
 links: 
 http://www.cygwin.com/ml/cygwin-developers/2011-04/msg00036.html 
 https://github.com/kaniini/win32-fork/blob/master/fork.c It doesn't 
 look promising. Maybe if would work if we ever get to the point
 where a content process doesn't need to use any Win32 APIs.

Even if you used something like Cygwin's fork(), it wouldn't help you,
since their implementation isn't copy-on-write:

  Currently, the Cygwin fork is a non-copy-on-write implementation
  similar to what was present in early flavors of UNIX.[1]

As far as I know, it's flat-out *impossible* to implement copy-on-write
process creation using the Win32 API (and if it's not actually
impossible, it's pretty close). The NT API is another story, but unless
you want to use Windows Services for UNIX / Interix, you're probably not
going to get access to the NT kernel features you'd need to do it.

 We might be able to do something Nuwa-like where Gecko subsystems
 use an explicit shared data segment which is a copy-on-write view of
 a file.

I agree. Shared memory (e.g. CreateFileMapping[2]?) seems like the
closest thing on Windows, although that's a part of the Win32 API I've
never touched.

- Jim

[1] http://www.cygwin.com/cygwin-ug-net/highlights.html
[2]
https://msdn.microsoft.com/en-us/library/windows/desktop/aa366539%28v=vs.85%29.aspx
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform