New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 636405 link

Starred by 8 users

Issue metadata

Status: Fixed
Owner:
ooo
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocking:
issue 463348



Sign in to add a comment

Idle time scheduling changed significantly

Project Member Reported by skyos...@chromium.org, Aug 10 2016

Issue description

Example failing build:

https://build.chromium.org/p/chromium.perf/builders/Android%20Nexus5%20Perf%20%283%29/builds/2836/steps/v8.todomvc/logs/stdio

Most of the pages fail due to a timeout without a clear cause:

[  FAILED  ] 7 tests, listed below:
[  FAILED  ]  Polymer
[  FAILED  ]  AngularJS
[  FAILED  ]  React
[  FAILED  ]  Backbone.js
[  FAILED  ]  Ember.js
[  FAILED  ]  Dart
[  FAILED  ]  Vanilla JS

The pages themselves seem to show up fine, so I'm guessing there's something wrong with the idleness detector:

https://cs.chromium.org/chromium/src/tools/perf/page_sets/todomvc.py?rcl=0&l=47


 
Components: Build
Perf bot health sheriff pinging: Is anyone looking into this?

Comment 3 by jochen@chromium.org, Aug 22 2016

Owner: jochen@chromium.org
Status: Assigned (was: Available)

Comment 4 by aiolos@chromium.org, Aug 22 2016

Labels: -Pri-3 Pri-2
Summary: v8.todomvc frequently fails on Android Nexus 5 (was: v8.todomvc is flaky on Android Nexus 5)
All of the last 5 runs on the waterfall have timed out on both tot and the reference build. Raising priority.

https://uberchromegw.corp.google.com/i/chromium.perf/builders/Android%20Nexus5%20Perf%20%283%29
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 24 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c3cb38333c08f67b50e482aad3674a7bbfed6be

commit 2c3cb38333c08f67b50e482aad3674a7bbfed6be
Author: jochen <jochen@chromium.org>
Date: Wed Aug 24 23:04:30 2016

Add some more categories for V8.TodoMVC to see what keeps us non-idle

BUG= 636405 
R=skyostil@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.perf:android_s5_perf_cq;master.tryserver.chromium.perf:linux_perf_cq;master.tryserver.chromium.perf:mac_retina_perf_cq;master.tryserver.chromium.perf:winx64_10_perf_cq

Review-Url: https://codereview.chromium.org/2274933002
Cr-Commit-Position: refs/heads/master@{#414187}

[modify] https://crrev.com/2c3cb38333c08f67b50e482aad3674a7bbfed6be/tools/perf/benchmarks/v8.py
[modify] https://crrev.com/2c3cb38333c08f67b50e482aad3674a7bbfed6be/tools/perf/page_sets/todomvc.py

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 25 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0f5391d7b30ce4536222f46aa5804f13f65da25d

commit 0f5391d7b30ce4536222f46aa5804f13f65da25d
Author: jochen <jochen@chromium.org>
Date: Thu Aug 25 20:18:10 2016

Temporarily decrease min-idle time for todomvc pagesets

Also record all the events

BUG= 636405 
R=skyostil@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.perf:android_s5_perf_cq;master.tryserver.chromium.perf:linux_perf_cq;master.tryserver.chromium.perf:mac_retina_perf_cq

Review-Url: https://codereview.chromium.org/2276313002
Cr-Commit-Position: refs/heads/master@{#414521}

[modify] https://crrev.com/0f5391d7b30ce4536222f46aa5804f13f65da25d/tools/perf/benchmarks/v8.py
[modify] https://crrev.com/0f5391d7b30ce4536222f46aa5804f13f65da25d/tools/perf/page_sets/todomvc.py

Comment 7 by jochen@chromium.org, Aug 26 2016

Cc: rmcilroy@chromium.org
attaching a trace from the bots. It looks like although there long stretches of idle time, only very late the rIC is invoked with pretty short idle periods.
Polymer.htm
3.4 MB View Download

Comment 8 by jochen@chromium.org, Aug 30 2016

Labels: OS-All
Owner: skyos...@chromium.org
Summary: Idle time scheduling changed significantly (was: v8.todomvc frequently fails on Android Nexus 5)
So looking at the v8.todomvc desktop results, it looks like since https://codereview.chromium.org/2118903002 the idle time behavior changed significantly.

Sami, mind investigating this further?
Status: Started (was: Assigned)
Hmm, that is unexpected to say the least :) I'll take a look.
Out of curiosity looked at some histograms and did not (yet?) see movement there:

https://uma.googleplex.com/p/chrome/timeline_v2/?sid=e53fc4dfe879c205e249ffcbfba25ef1
I'm looking at e.g. release/v8.todomvc/v8_execution_cpu_self_sum/Polymer 

I'll locally bisect to verify... sec
Owner: jochen@chromium.org
ok, seems to be something else... still bisecting, but I'm now before the move
Cc: eyaich@chromium.org
 Issue 643134  has been merged into this issue.
Project Member

Comment 15 by bugdroid1@chromium.org, Sep 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/253882fa1c3830b958f13da1c28f1aecbdba3d09

commit 253882fa1c3830b958f13da1c28f1aecbdba3d09
Author: jochen <jochen@chromium.org>
Date: Fri Sep 02 13:24:30 2016

Revert of Temporarily decrease min-idle time for todomvc pagesets (patchset #1 id:1 of https://codereview.chromium.org/2276313002/ )

Reason for revert:
no longer needed

Original issue's description:
> Temporarily decrease min-idle time for todomvc pagesets
>
> Also record all the events
>
> BUG= 636405 
> R=skyostil@chromium.org
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.perf:android_s5_perf_cq;master.tryserver.chromium.perf:linux_perf_cq;master.tryserver.chromium.perf:mac_retina_perf_cq
>
> Committed: https://crrev.com/0f5391d7b30ce4536222f46aa5804f13f65da25d
> Cr-Commit-Position: refs/heads/master@{#414521}

TBR=skyostil@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 636405 

Review-Url: https://codereview.chromium.org/2308593002
Cr-Commit-Position: refs/heads/master@{#416256}

[modify] https://crrev.com/253882fa1c3830b958f13da1c28f1aecbdba3d09/tools/perf/benchmarks/v8.py
[modify] https://crrev.com/253882fa1c3830b958f13da1c28f1aecbdba3d09/tools/perf/page_sets/todomvc.py

Project Member

Comment 16 by bugdroid1@chromium.org, Sep 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0de9faf1af255a6e7d928ee4c65eb0214ce72a3e

commit 0de9faf1af255a6e7d928ee4c65eb0214ce72a3e
Author: picksi <picksi@google.com>
Date: Fri Sep 02 15:34:57 2016

Disabling v8.todoMVC tests on reference builds

BUG= 636405 
NOTRY=true
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.perf:android_s5_perf_cq;master.tryserver.chromium.perf:linux_perf_cq;master.tryserver.chromium.perf:mac_retina_perf_cq;master.tryserver.chromium.perf:winx64_10_perf_cq

Review-Url: https://codereview.chromium.org/2304113002
Cr-Commit-Position: refs/heads/master@{#416270}

[modify] https://crrev.com/0de9faf1af255a6e7d928ee4c65eb0214ce72a3e/tools/perf/benchmarks/v8.py

Project Member

Comment 17 by bugdroid1@chromium.org, Sep 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7f488aeee33527e2b9d00a369874affd71f9d22d

commit 7f488aeee33527e2b9d00a369874affd71f9d22d
Author: jochen <jochen@chromium.org>
Date: Fri Sep 02 21:08:12 2016

Revert of Add some more categories for V8.TodoMVC to see what keeps us non-idle (patchset #1 id:1 of https://codereview.chromium.org/2274933002/ )

Reason for revert:
no longer needed

Original issue's description:
> Add some more categories for V8.TodoMVC to see what keeps us non-idle
>
> BUG= 636405 
> R=skyostil@chromium.org
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.perf:android_s5_perf_cq;master.tryserver.chromium.perf:linux_perf_cq;master.tryserver.chromium.perf:mac_retina_perf_cq;master.tryserver.chromium.perf:winx64_10_perf_cq
>
> Committed: https://crrev.com/2c3cb38333c08f67b50e482aad3674a7bbfed6be
> Cr-Commit-Position: refs/heads/master@{#414187}

TBR=skyostil@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 636405 

Review-Url: https://codereview.chromium.org/2306073002
Cr-Commit-Position: refs/heads/master@{#416340}

[modify] https://crrev.com/7f488aeee33527e2b9d00a369874affd71f9d22d/tools/perf/benchmarks/v8.py
[modify] https://crrev.com/7f488aeee33527e2b9d00a369874affd71f9d22d/tools/perf/page_sets/todomvc.py

Project Member

Comment 18 by bugdroid1@chromium.org, Sep 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/be74d8bad819ed4753b82f03003e8d88b1816ed0

commit be74d8bad819ed4753b82f03003e8d88b1816ed0
Author: lpy <lpy@chromium.org>
Date: Wed Sep 07 00:53:45 2016

Revert of Disabling v8.todoMVC tests on reference builds (patchset #1 id:1 of https://codereview.chromium.org/2304113002/ )

Reason for revert:
Enable v8.todoMVC tests on reference builds since they won't fail on TOT now.

Original issue's description:
> Disabling v8.todoMVC tests on reference builds
>
> BUG= 636405 
> NOTRY=true
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.perf:android_s5_perf_cq;master.tryserver.chromium.perf:linux_perf_cq;master.tryserver.chromium.perf:mac_retina_perf_cq;master.tryserver.chromium.perf:winx64_10_perf_cq
>
> Committed: https://crrev.com/0de9faf1af255a6e7d928ee4c65eb0214ce72a3e
> Cr-Commit-Position: refs/heads/master@{#416270}

TBR=skyostil@chromium.org,picksi@chromium.org,picksi@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 636405 

Review-Url: https://codereview.chromium.org/2313143002
Cr-Commit-Position: refs/heads/master@{#416806}

[modify] https://crrev.com/be74d8bad819ed4753b82f03003e8d88b1816ed0/tools/perf/benchmarks/v8.py

I tried to reproduce this locally without success.  I just sent a perf-tryjob with renderer.scheduler and disabled-by-default-renderer.scheduler categories turned on.  That should let us see (assuming I can get the trace) if IdleHelper::StartIdlePeriod is getting called as expected, and let us see what state the queues are in.
s/test passing/Interaction starting.
I used a meanwhile reverted configuration where I'd finish the test after already a 10ms idle callback - that way I managed to get traces for runs that would otherwise just time out.

Might be worthwhile to reland them for a day, and also activate the scheduler categories
Maybe related to  issue 647870 
 Issue 644826  has been merged into this issue.
Cc: junov@chromium.org caseq@chromium.org ttij...@wikimedia.org alexclarke@chromium.org krinklem...@gmail.com xlai@chromium.org briander...@chromium.org skyos...@chromium.org
 Issue 647870  has been merged into this issue.
Owner: briander...@chromium.org
Status: Assigned (was: Started)
Hey Brian, have you had any time to dig into this?

Comment 28 by ebra...@gnu.org, Oct 14 2016

Blocking: 463348
Cc: sunn...@chromium.org
Status: Fixed (was: Assigned)
So I spent some time digging into this and I *think* this was already fixed by Sunny when he removed retro-BeginFrames from the scheduler -- most recently here: https://codereview.chromium.org/2339633003

v8.todomvc is passing on all the bots I looked at, and the last failure I found was from September 26th, a bit after Sunny's patch was reverted:

https://build.chromium.org/p/chromium.perf/builders/Android%20Nexus5%20Perf%20%283%29/builds/3281

My theory of what was happening is this:

1. Scheduler wants a BeginFrame and posts a retro-BeginFrame task.
2. Scheduler changes its mind => NotExpectingBeginFrameSoon.
3. RetroBeginFrame task runs and does a BeginFrame, but since we didn't subscribe to BeginFrames we won't call NotExpectingBeginFrameSoon after it => Blink Scheduler thinks we're never completely idle.

Given that retro frames are gone, this isn't possible anymore. However I tried to sync back to a build with retro frames intact and I still couldn't reproduce this bug -- I tried with Wikipedia, a custom rIC page and v8.todomvc.

I'll close the bug. Please reopen if you run into this problem elsewhere.

Sign in to add a comment