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

Issue 619975 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

12.8% regression in media.tough_video_cases_extra at 399374:399376

Project Member Reported by ddorwin@chromium.org, Jun 14 2016

Issue description

See the link to graphs below.
 
All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=619975

Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?keys=agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgvKOMqQoM


Bot(s) for this bug's original alert(s):

chromium-rel-mac-retina
Cc: alokp@chromium.org
Components: Internals>Media>Video
Labels: OS-Mac
I'm running a bisect, but https://codereview.chromium.org/1999893004 is the likely suspect.
Project Member

Comment 3 by 42576172...@developer.gserviceaccount.com, Jun 14 2016

Owner: alokp@chromium.org

=== Auto-CCing suspected CL author alokp@chromium.org ===

Hi alokp@chromium.org, the bisect results pointed to your CL below as possibly
causing a regression. Please have a look at this info and see whether
your CL be related.


===== BISECT JOB RESULTS =====
Status: completed


===== SUSPECTED CL(s) =====
Subject : Splits PipelineImpl into main and media thread components.
Author  : alokp
Commit description:
  
The outer PipelineImpl runs on the main thread and acts as a proxy
between PipelineClient and the internal RendererWrapper that runs on
the media thread. This sets the stage to get rid of WaitableEvent
and Locks used in PipelineImpl.

This patch should not change anything functionality wise except for
timing of the notifications received from Demuxer and Renderer. In
response to the notifications we used to change member variables
inside a lock. Now we post a task to change those variables to the
main thread. The list of variables affected by this change are:
- buffered_time_ranges_
- did_loading_progress_
- duration_
- statistics_

BUG= 616959 

Review-Url: https://codereview.chromium.org/1999893004
Cr-Commit-Position: refs/heads/master@{#399376}
Commit  : 1116967f7c15965538b42c2a402712279d4e5662
Date    : Sat Jun 11 17:32:57 2016


===== TESTED REVISIONS =====
Revision         Mean     Std Dev  N  Good?
chromium@399373  220.462  2.95043  5  good
chromium@399375  219.059  1.3157   5  good
chromium@399376  245.709  4.38754  5  bad    <--

Bisect job ran on: mac_retina_perf_bisect
Bug ID: 619975

Test Command: src/tools/perf/run_benchmark -v --browser=release --output-format=chartjson --upload-results --also-run-disabled-tests media.tough_video_cases_extra
Test Metric: seek/crowd720_vp9.webm_seek_cold
Relative Change: 11.45%
Score: 99.9

Buildbot stdio: http://build.chromium.org/p/tryserver.chromium.perf/builders/mac_retina_perf_bisect/builds/1334
Job details: https://chromeperf.appspot.com/buildbucket_job_status/9009861042934353600


Not what you expected? We'll investigate and get back to you!
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5784331755192320

| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Tests>AutoBisect.  Thank you!
Project Member

Comment 4 by 42576172...@developer.gserviceaccount.com, Jun 14 2016


===== BISECT JOB RESULTS =====
Status: completed


===== SUSPECTED CL(s) =====
Subject : Splits PipelineImpl into main and media thread components.
Author  : alokp
Commit description:
  
The outer PipelineImpl runs on the main thread and acts as a proxy
between PipelineClient and the internal RendererWrapper that runs on
the media thread. This sets the stage to get rid of WaitableEvent
and Locks used in PipelineImpl.

This patch should not change anything functionality wise except for
timing of the notifications received from Demuxer and Renderer. In
response to the notifications we used to change member variables
inside a lock. Now we post a task to change those variables to the
main thread. The list of variables affected by this change are:
- buffered_time_ranges_
- did_loading_progress_
- duration_
- statistics_

BUG= 616959 

Review-Url: https://codereview.chromium.org/1999893004
Cr-Commit-Position: refs/heads/master@{#399376}
Commit  : 1116967f7c15965538b42c2a402712279d4e5662
Date    : Sat Jun 11 17:32:57 2016


===== TESTED REVISIONS =====
Revision         Mean     Std Dev  N  Good?
chromium@399373  217.207  1.94795  5  good
chromium@399375  219.918  1.81653  5  good
chromium@399376  242.348  3.20013  5  bad    <--

Bisect job ran on: mac_retina_perf_bisect
Bug ID: 619975

Test Command: src/tools/perf/run_benchmark -v --browser=release --output-format=chartjson --upload-results --also-run-disabled-tests media.tough_video_cases_extra
Test Metric: seek/crowd720_vp9.webm_seek_cold
Relative Change: 11.57%
Score: 99.9

Buildbot stdio: http://build.chromium.org/p/tryserver.chromium.perf/builders/mac_retina_perf_bisect/builds/1335
Job details: https://chromeperf.appspot.com/buildbucket_job_status/9009860924993313280


Not what you expected? We'll investigate and get back to you!
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5274660334206976

| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Tests>AutoBisect.  Thank you!

Comment 5 by alokp@chromium.org, Jun 14 2016

David: Does this benchmark measure seek time?
Cc: -alokp@chromium.org crouleau@chromium.org
I assume that's what it does, but Caleb can confirm.
Yes, it does measure seek time. It measures "seek" and "avg_loop_time".

Comment 8 by alokp@chromium.org, Jun 14 2016

Status: Started (was: Assigned)

Comment 9 by alokp@chromium.org, Jun 14 2016

I am not able to repro this locally on linux desktop. Results are attached for running the pageset 5 times.

I will try running the benchmark on mac.
results.html
117 KB View Download
There were no alerts for platforms other than Mac, so this is not surprising.

Comment 11 by alokp@chromium.org, Jun 15 2016

Blocking: 617615

Comment 12 by mad@chromium.org, Jun 17 2016

Labels: -performance-sheriff Performance-Sheriff
Any progress on this? It's blocking an issue that is listed as a top crasher for the Stability Sheriffs.

Comment 13 by alokp@chromium.org, Jun 17 2016

I uploaded a patch yesterday: https://codereview.chromium.org/2071503003/

I will followup with the reviewers today.

Comment 14 by alokp@chromium.org, Jun 20 2016

Blocking: -617615
Project Member

Comment 15 by bugdroid1@chromium.org, Jun 22 2016

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

commit 8f268bb64214eab73f00216b96b919a1b2955999
Author: alokp <alokp@chromium.org>
Date: Wed Jun 22 23:26:48 2016

Avoid flooding main thread by caching state on media thread.

OnStatisticsUpdate and OnBufferedTimeRangesChanged fire much more
frequently than queried for. Posting all state change notifications
to the main thread causes potential performance issues. Cache state
not immediately required by PipelineClient on the media thread to
avoid having to post all state change notifications.

BUG= 619975 

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

[modify] https://crrev.com/8f268bb64214eab73f00216b96b919a1b2955999/media/base/pipeline_impl.cc
[modify] https://crrev.com/8f268bb64214eab73f00216b96b919a1b2955999/media/base/pipeline_impl.h

Comment 16 by alokp@chromium.org, Jun 23 2016

Status: Fixed (was: Started)

Sign in to add a comment