Issue metadata
Sign in to add a comment
|
Inspector is extremely lagging and hangs
Reported by
mar...@duotones.ch,
Sep 29 2017
|
||||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 Steps to reproduce the problem: 1. Open Inspector 2. Inspect Element 3. Inspector hangs (Chrome still responses, eg. can open new Tab etc) What is the expected behavior? no lag What went wrong? Inspector Lags and is completely unfit to work with. Did this work before? Yes The one I had before Chrome updated to 61 Chrome version: 61.0.3163.100 Channel: stable OS Version: OS X 10.11.6 Flash Version: I wish I could roll back and also dsable Auto-Updates... I rely on this to work productively! I'm not entirely sure, but it might be badder if I'm accessing the local dev website through a proxy through gulp/browser-sync instead of directly accessing the local URL. Again, I need this tow work for work. Anyway I can roll back to Chrome 59 / Disable Auto-Update?
,
Oct 4 2017
First I thought it was only on local websites, but I discovered now that this page http://atomic.run has the same issues. I know that the particles here need processing power, but before the update, Chrome was able to handle this without a blink. It happens on many more local running sites. Is there anyway of rolling back to Chrome 59 without it constantly updating again for the time being, till this is resolved? Because otherwise I'll have to change to some other Browser for developing. BTW: I'm on a 6core MacPro with a Cinema 4k Display
,
Oct 4 2017
Thank you for providing more feedback. Adding requester "allada@chromium.org" to the cc list and removing "Needs-Feedback" label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 6 2017
Able to reproduce the issue on mac 10.12.6 using chrome reported version #61.0.3163.100 and latest canary #63.0.3233.0. Issue is specific to OS-Mac. Bisect Information: ===================== Good build: 61.0.3154.0 Revision(485485) Bad Build : 61.0.3155.0 Revision(485784) Change Log URL: https://chromium.googlesource.com/chromium/src/+log/11e48b29d00fdd714c3ff3f8ebe0d51a2c4ce61c..63fbdcc12a7ef762e0652c972986fe74835ba00e From the above change log suspecting below change Change-Id: Iac99671e887b18e0bdf32d192d13e83fb0b1e55c Reviewed-on: https://chromium-review.googlesource.com/566083 sunnyps@ - Could you please check whether this is caused with respect to your change, if not please help us in assigning it to the right owner. Note: Adding label ReleaseBlock-Stable as it seems to be a recent regression. Please feel free to remove the same if not appropriate. Thanks...!!
,
Oct 7 2017
,
Oct 7 2017
I can reproduce on Canary (63.0.3230.0) but not on ToT (r505193).
,
Oct 7 2017
I don't know why I can't repro on ToT but I think that's a red herring. I got a trace from Canary 63.0.3234.0 and it's clear that this is a gpu scheduler fairness issue. The devtools renderer waits for an absurdly long time to initialize in WaitForGetOffset. This might be a problem on mac only because the backpressure mechanism seems to be insufficient. There's lots of blocking in commands as well as the swap fence client wait. Maybe the short term solution is to upgrade the priority of contexts with client waits. piman@ WDYT?
,
Oct 7 2017
Upgrading the priority to highest doesn't work because the UI builds up too much backpressure as soon as it's given higher priority after the client wait completes.
,
Oct 7 2017
CL for raising priority on client wait (doesn't fix the regression): https://chromium-review.googlesource.com/#/c/chromium/src/+/706129 What seems to work (other than disabling the scheduler) is to set all priorities equal, and fall back to using order number only (similar to scheduler disabled). ccameron@ any ideas?
,
Oct 7 2017
Also, to clear up earlier confusion, I can repro on ToT now. I had dchecks enabled before (dcheck_always_on = true), which slows down WebGL significantly and was probably hiding the regression by giving devtools more time.
,
Oct 7 2017
,
Oct 9 2017
sunnyps@, The same issue exists in current stable#60.0.3163.100 as well. So do you think it should block next M62 stable release? I am removing 'RB-Stable' as of now, however please feel free to add if you think otherwise. Thank you!
,
Oct 9 2017
On Mac there are a handful of complications Mac has global glFlush ordering -- work is executed on the GPU in the order that it was flushed to the GPU, regardless of the fences/dependencies issued. This is true across contexts and across processes . Mac has its compositing done by the WindowServer, which we can easily starve. The client wait exists to attempt to "play nice" with the WindowServer. Re #9, the "fall back to using order number only" solution sounds like it is likely to play nicer with the Mac constraints.
,
Oct 9 2017
Marking as RBS, we need to merge the fix into M62. 1) Visit http://atomic.run 2) Open inspector inspector lags to even open, console and elements are unusable.
,
Oct 9 2017
#12: Can you confirm this is happening on M60 as described in #14? Inspector is a bit slow with the gpu scheduler disabled but doesn't hang. I'm guessing it doesn't hang on M60 as well.
,
Oct 9 2017
And isn't current stable 61.0.3163.100 (not 60.0.3163.100 as in #12).
,
Oct 9 2017
#15,16: I can reproduce this issue (per c#14) on current stable#61.0.3163.0 as well as on Latest Canary#63.0.3236.0 for OS X 10.12.6. It's not a complete hang, however this particular tab is consuming lot of CPU memory along with 'gpu process'. The impact is severe in Canary compared to Stable and at one point of time DevTools is unusable (Kind of a hung). For M60#60.0.3112.113, i do not see much lag in Dev tools though the tab (http://atomic.run) is consuming little more CPU memory than usual. I am attaching chrome://tracing for all the above scenarios here (https://goto.google.com/oiahn) along with chrome://gpu. PS: The above behavior (Dev tools hang) is considerably varies w.r.t no. of open tabs in the browser. And in #12 it was a typo. It used to be chrome#61.0.3160.0. Thank you!
,
Oct 10 2017
I think there are two separate bugs here: 1. Slowness / lag when devtools is docked within the Chrome window. This seems to be because of starvation of the devtools renderer context because display compositor hogs up all the time. I have a fix for this (upgrade context priority when client is waiting). 2. Both the page and devtools stop rendering and hang when devtools is opened in its own window. I've been able to repro this with the gpu scheduler turned on and off. This page is special because most of the GPU work is done in the display compositor (probably blurs and filters) as opposed to canvas context. Since the display compositor has highest priority it can starve the devtools context. Also, adding a DescheduleUntilFinished to canvas prepare mailbox didn't do anything, probably because canvas context isn't doing much in the first place.
,
Oct 11 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c98596763f36fd5fcc0c984be67b59f3775b35ac commit c98596763f36fd5fcc0c984be67b59f3775b35ac Author: Sunny Sachanandani <sunnyps@chromium.org> Date: Wed Oct 11 23:19:16 2017 gpu: Prioritize contexts with client waits. Sequences with client waits are prioritized the same way as sync token releases. The UI context is given the same priority so that it can't starve contexts with client waits. This provides some fairness and fixes indefinite blocking of renderer contexts when the GPU process is loaded. R=piman BUG= 770146 TEST=gpu_unittests SchedulerTest.ClientWaitIsPrioritized Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: If5298a9bcdae13a6882b1297bc81708109b7922c Reviewed-on: https://chromium-review.googlesource.com/706129 Reviewed-by: Antoine Labour <piman@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Cr-Commit-Position: refs/heads/master@{#508166} [modify] https://crrev.com/c98596763f36fd5fcc0c984be67b59f3775b35ac/content/common/gpu_stream_constants.h [modify] https://crrev.com/c98596763f36fd5fcc0c984be67b59f3775b35ac/gpu/command_buffer/common/scheduling_priority.cc [modify] https://crrev.com/c98596763f36fd5fcc0c984be67b59f3775b35ac/gpu/command_buffer/common/scheduling_priority.h [modify] https://crrev.com/c98596763f36fd5fcc0c984be67b59f3775b35ac/gpu/command_buffer/service/scheduler.cc [modify] https://crrev.com/c98596763f36fd5fcc0c984be67b59f3775b35ac/gpu/command_buffer/service/scheduler.h [modify] https://crrev.com/c98596763f36fd5fcc0c984be67b59f3775b35ac/gpu/command_buffer/service/scheduler_unittest.cc [modify] https://crrev.com/c98596763f36fd5fcc0c984be67b59f3775b35ac/gpu/ipc/service/gpu_channel_unittest.cc [modify] https://crrev.com/c98596763f36fd5fcc0c984be67b59f3775b35ac/gpu/ipc/service/gpu_command_buffer_stub.cc
,
Oct 11 2017
abdulsyed@ This is marked as M62 release blocker. I've landed a fix which will roll into next canary. Can you decide if this indeed a release blocker and if we should merge the fix to 62?
,
Oct 12 2017
#17: Can you please verify the fix on 63.0.3238.0?
,
Oct 12 2017
Seems like things are improved and able to navigate within dev tools without much lag on Latest Canary#63.0.3238.0 for Mac OS X 10.12.6.
,
Oct 13 2017
[Auto-generated comment by a script] We noticed that this issue is targeted for M-61; it appears the fix may have landed after branch point, meaning a merge might be required. Please confirm if a merge is required here - if so add Merge-Request-61 label, otherwise remove Merge-TBD label. Thanks.
,
Oct 13 2017
abdulsyed@ I've requested a merge, please decide if the bug is serious enough to warrant a a merge this late in the cycle.
,
Oct 13 2017
This bug requires manual review: We are only 3 days from stable. Please contact the milestone owner if you have questions. Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 13 2017
I tested Canary 63.0.3239 and it seems to be solved (couldn't test it very throughly yet) but tested also some local running pages which I experienced the issues in chrome and on all of them, the inspector in Canary doesn't seem to lag anymore.
,
Oct 13 2017
Thanks for the fix. My recommendation is to wait until M63 since M62 is only a few days from stable. This does not seem to be critical enough to warrant a last minute merge. If you disagree, please provide a detailed explanation for why this is critical.
,
Oct 13 2017
I agree that this doesn't warrant a merge this late in the cycle.
,
Oct 13 2017
- Do we have an idea on how often this is going to happen? - Is there a simpler fix we can push into stable? With security update? What I'm seeing at http://atomic.run is a true stable blocker. If we expect it to happen on more than a handful of sites in the internet, we need to fix in M62.
,
Oct 13 2017
This bug requires manual review: We are only 3 days from stable. Please contact the milestone owner if you have questions. Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 13 2017
I expect this to happen on pages that tax the GPU a lot. Normal pages shouldn't show this behavior.
,
Oct 13 2017
Basically games? If this means DevTools is not available on the game sites, we have a serious issue.
,
Oct 13 2017
So far, I've only seen the hang on the atomic.run page. We see absurdly long (50-100 ms) gpu backpressure on that page every alternate frame. Most of the gpu work is from the display compositor (lots of renderpasses maybe?). There is a canvas on that page but that also hangs. Other pages I've tried: 1. http://webglsamples.org/aquarium/aquarium.html (lots of draw calls, not really gpu taxing) 2. fishgl.com (few draw calls, somewhat gpu taxing) Both these cases seem to work fine wrt dev tools. If you know of other pages that show this issue, please let me know.
,
Oct 13 2017
Sunnyps@ - thanks for more feedback. Can you also comment on how safe/complex this merge is overall? Looking at the CL, seems like it's modifying some common classes, which makes me a bit nervous. Our biggest goal right now is to ensure that we minimize risk of introducing new regressions as we move M62 to Stable. Can you please comment on how safe this merge is overall, it's overall complexity, and automated test coverage?
,
Oct 13 2017
Re #23: No further M61 releases. Hence, removing "Merge-TBD" label.
,
Oct 16 2017
Confirmed with sunnyps@. This is not a simple fix, and due to it's very low prevalence, recommend not merging to M62. However, if this does become more prevalent, we can aim to include this in next M62 respin.
,
Oct 16 2017
This bug is also present in M61.
,
Oct 17 2017
issue 760834 is apparently a duplicate (with very simple reproduction steps)
,
Oct 18 2017
> On Mac there are a handful of complications While issue 760834 looks very much like a duplicate, the symptoms seem different indeed: ChromeOS 63.0.3236.0 - Aquarium 4000 hangs inspector - http://atomic.run does NOT MacOS 62.0.3202.62 - Aquarium 4000 does NOT hang inspector - http://atomic.run does http://webglsamples.org/aquarium/aquarium.html Note Aquarium 2000 on ChromeOS just makes things slower while Aquarium 4000 causes complete starvation and hangs. (BTW issue 760834 was filed one month earlier than this one)
,
Oct 18 2017
|
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by allada@chromium.org
, Oct 2 2017