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

Issue 594434 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

50.7%-94.7% regression in webrtc.peerconnection at 380837:380860

Project Member Reported by kouhei@chromium.org, Mar 14 2016

Issue description

See the link to graphs below.
 
I kicked off a few more bisects.
Project Member

Comment 3 by 42576172...@developer.gserviceaccount.com, Mar 25 2016

Cc: tommi@chromium.org
Owner: tommi@chromium.org

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

Hi tommi@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 : Roll WebRTC 11897:11965, Libjingle 11893:11936
Author  : tommi
Commit description:
  
WebRTC 11897:11965

Changes: https://chromium.googlesource.com/external/webrtc/trunk/webrtc.git/+log/4b88ad3..2fae8b3

Libjingle 11893:11936

Changes: https://chromium.googlesource.com/external/webrtc/trunk/talk.git/+log/f608241..fedf409

TBR=
BUG=

Review URL: https://codereview.chromium.org/1791693002

Cr-Commit-Position: refs/heads/master@{#380840}
Commit  : b3ce6bc49c7238ab7f162ba8dd230df14a75a867
Date    : Sat Mar 12 04:42:14 2016


===== TESTED REVISIONS =====
Revision                Mean Value  Std. Dev.   Num Values  Good?
chromium@380836         19228.0     437.593419  5           good
chromium@380838         19276.0     481.447816  5           good
chromium@380839         19415.2     503.407588  5           good
chromium@380840         31496.0     582.98542   5           bad
chromium@380844         31585.6     649.181639  5           bad

Bisect job ran on: android_nexus7_perf_bisect
Bug ID: 594434

Test Command: src/tools/perf/run_benchmark -v --browser=android-chromium --output-format=chartjson --also-run-disabled-tests webrtc.peerconnection
Test Metric: vm_private_dirty_final_renderer/vm_private_dirty_final_renderer
Relative Change: 64.27%
Score: 99.9

Buildbot stdio: http://build.chromium.org/p/tryserver.chromium.perf/builders/android_nexus7_perf_bisect/builds/2861
Job details: https://chromeperf.appspot.com/buildbucket_job_status/9017188680416756080


| 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 label Cr-Tests-AutoBisect.  Thank you!
Project Member

Comment 4 by 42576172...@developer.gserviceaccount.com, Mar 25 2016


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


===== SUSPECTED CL(s) =====
Subject : Roll WebRTC 11897:11965, Libjingle 11893:11936
Author  : tommi
Commit description:
  
WebRTC 11897:11965

Changes: https://chromium.googlesource.com/external/webrtc/trunk/webrtc.git/+log/4b88ad3..2fae8b3

Libjingle 11893:11936

Changes: https://chromium.googlesource.com/external/webrtc/trunk/talk.git/+log/f608241..fedf409

TBR=
BUG=

Review URL: https://codereview.chromium.org/1791693002

Cr-Commit-Position: refs/heads/master@{#380840}
Commit  : b3ce6bc49c7238ab7f162ba8dd230df14a75a867
Date    : Sat Mar 12 04:42:14 2016


===== TESTED REVISIONS =====
Revision                Mean Value  Std. Dev.   Num Values  Good?
chromium@380836         18614.0     409.946338  6           good
chromium@380839         18673.6     304.796325  5           good
chromium@380840         30956.8     404.013861  5           bad
chromium@380841         31479.2     309.624288  5           bad
chromium@380842         31111.2     380.056838  5           bad
chromium@380848         30889.6     210.762425  5           bad
chromium@380860         30879.2     288.047218  5           bad

Bisect job ran on: android_nexus5_perf_bisect
Bug ID: 594434

Test Command: src/tools/perf/run_benchmark -v --browser=android-chromium --output-format=chartjson --also-run-disabled-tests webrtc.peerconnection
Test Metric: vm_private_dirty_final_renderer/vm_private_dirty_final_renderer
Relative Change: 65.21%
Score: 99.9

Buildbot stdio: http://build.chromium.org/p/tryserver.chromium.perf/builders/android_nexus5_perf_bisect/builds/3525
Job details: https://chromeperf.appspot.com/buildbucket_job_status/9017188671619417472


| 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 label Cr-Tests-AutoBisect.  Thank you!
Components: Blink>WebRTC

Comment 6 by pbos@chromium.org, Mar 29 2016

Owner: pbos@chromium.org
I'll try taking a look, I believe I have a plausible culprit in there.

Comment 7 by pbos@chromium.org, Mar 29 2016

Cc: pbos@chromium.org
Owner: tommi@chromium.org
Turned out to be a red herring, no idea so far right now. :(

Comment 8 by pbos@chromium.org, Mar 30 2016

Owner: perkj@chromium.org
Per's CL in https://codereview.webrtc.org/1773993002 turned off denoising by default for VP8, for now that's our best guess (and it still needs to be fixed). Assigning to him.

This patch removes the regression (default != set to false, which was the case after the patch):

diff --git a/api/rtpsender.cc b/api/rtpsender.cc
index 9c6dfb8..b82e751 100644
--- a/api/rtpsender.cc
+++ b/api/rtpsender.cc
@@ -324,8 +324,7 @@ void VideoRtpSender::SetVideoSend() {
   VideoTrackSourceInterface* source = track_->GetSource();
   if (source) {
     options.is_screencast = rtc::Optional<bool>(source->is_screencast());
-    options.video_noise_reduction =
-        rtc::Optional<bool>(source->needs_denoising());
+    options.video_noise_reduction = rtc::Optional<bool>();
   }
   provider_->SetVideoSend(ssrc_, track_->enabled(), &options);
 }

Comment 9 by perkj@chromium.org, Mar 30 2016

Status: Started (was: Assigned)
Fix has hopefully been rolled in here: https://codereview.chromium.org/1850673003/


I wonder if the there is something else going on here. After the last roll- it looks even worse. 

https://chromeperf.appspot.com/group_report?bug_id=594434


It turns out that these tests does not work at all on Android at the moment since the bots always run in flight mode which means that a call is never setup properly.

Running these tests manually on a N6 shows:

Rev #380838 with Wifi enabled:
I can see the remote side beeing rendered:

RESULT vm_private_dirty_final_renderer: 720p_call_45s= 51304 kb
RESULT vm_private_dirty_final_renderer: vm_private_dirty_final_renderer= 51304 kb

Attempt 2:
RESULT vm_private_dirty_final_renderer: 720p_call_45s= 51392 kb
RESULT vm_private_dirty_final_renderer: vm_private_dirty_final_renderer= 51392 kb

In flight mode- without wifi....
Remote side never renderes.
RESULT vm_private_dirty_final_renderer: 720p_call_45s= 20732 kb
RESULT vm_private_dirty_final_renderer: vm_private_dirty_final_renderer= 20732 kb

Attemp 2:
RESULT vm_private_dirty_final_renderer: 720p_call_45s= 20152 kb
RESULT vm_private_dirty_final_renderer: vm_private_dirty_final_renderer= 20152 kb


Rev #380840
Flight mode:
RESULT vm_private_dirty_final_renderer: 720p_call_45s= 32180 kb
RESULT vm_private_dirty_final_renderer: vm_private_dirty_final_renderer= 32180 kb

No flight mode:
RESULT vm_private_dirty_final_renderer: 720p_call_45s= 41996 kb
RESULT vm_private_dirty_final_renderer: vm_private_dirty_final_renderer= 41996 kb


So -actually - pbos change do increase the memory footprint when the call is not setup successfully.  However - when it is setup successfully - the memory usage decrease compared to before the roll. That in turn- is most likely due tot the bug that video denoising was disabled per default that is fixed in #10.


Cc: perkj@chromium.org
Owner: phoglund@chromium.org
Reassignig to phoglund to try to get these tests to work as they should on Android.

(this diff does not seem to be enough.....)

--- a/tools/perf/benchmarks/webrtc.py
+++ b/tools/perf/benchmarks/webrtc.py
@@ -72,6 +72,8 @@ class WebrtcRendering(perf_benchmark.PerfBenchmark):
   def SetExtraBrowserOptions(self, options):
     options.AppendExtraBrowserArgs('--use-fake-device-for-media-stream')
     options.AppendExtraBrowserArgs('--use-fake-ui-for-media-stream')
+    options.AppendExtraBrowserArgs('--allow-loopback-in-peer-connection')
+    options.AppendExtraBrowserArgs('--enforce-webrtc-ip-permission-check')
 

Yeah, unless we think it's a bug to consume more memory when a call doesn't get up, the only remaining bug is with the test.

Comment 16 by pbos@chromium.org, Apr 4 2016

I think it's reasonable that it's preparing to send the input given to it, so I think my change is fine (and also necessary for time-to-first-frame reductions).
Cc: nyerramilli@chromium.org phoglund@chromium.org
 Issue 600264  has been merged into this issue.
I've been trying to add the same flags as the content browsertest, but it doesn't work. I don't know why unfortunately.
I don't feel I have time to fix this either, now that it turns out it wasn't an easy fix, so I'll spin off a new bug and hopefully someone can look at it later. For now the tests at least measure getUserMedia stuff correctly.
Status: Fixed (was: Started)
Spun off https://bugs.chromium.org/p/chromium/issues/detail?id=603852, marking fixed since this bug has been dealt with appropriately.

Sign in to add a comment