|
|
Created:
6 years, 5 months ago by Sami Modified:
6 years, 3 months ago CC:
chromium-reviews, jam, cc-bugs_chromium.org, jdduke+watch_chromium.org, darin-cc_chromium.org, mithro-old Base URL:
svn://svn.chromium.org/chrome/trunk/src Project:
chromium Visibility:
Public. |
DescriptionForward input tasks to the Blink scheduler
Instead of posting input tasks directly to the main thread
message loop, forward them to the Blink scheduler so they
can be prioritized over other tasks.
BUG=391005
Committed: https://crrev.com/457b0a1c94129337a08d0efcc3fd016205a981b4
Cr-Commit-Position: refs/heads/master@{#293914}
Patch Set 1 #Patch Set 2 : More refined plumbing. #Patch Set 3 : Cleanup. DefaultMainThreadTaskRunner now dispatches properly. #
Total comments: 2
Patch Set 4 : Snapshot. #Patch Set 5 : Simplification. #Patch Set 6 : Compile fix. #Patch Set 7 : Rebased. Added support for FROM_HERE. #Patch Set 8 : Fix tests. #
Total comments: 3
Patch Set 9 : Thread safe shutdown. #Patch Set 10 : Fixed test crash. #Patch Set 11 : Unbreak single threaded mode. #
Total comments: 2
Patch Set 12 : Removed fallback. #
Total comments: 6
Patch Set 13 : Add test. #Patch Set 14 : Debug task annotations. #Patch Set 15 : Remove RenderThreadImpl DCHECK. #Patch Set 16 : Rebased. #Patch Set 17 : Sequence numbers for tasks. #
Total comments: 10
Patch Set 18 : James's comments. #Patch Set 19 : Rebased. #Patch Set 20 : Rebased. #Patch Set 21 : Rebased. #Patch Set 22 : Only forward input tasks for now. #Messages
Total messages: 73 (6 generated)
Hi Sami, I think I understand better now, thanks for that. Still have a question about the following issue below? Tim https://codereview.chromium.org/363383002/diff/40001/cc/trees/thread_proxy.cc File cc/trees/thread_proxy.cc (right): https://codereview.chromium.org/363383002/diff/40001/cc/trees/thread_proxy.cc... cc/trees/thread_proxy.cc:719: 0, 0, 0); This line I don't quite understand? Isn't all the state you are passing as arguments actually captured in the begin_main_frame_state structure? I have a CL which I'm yet to send out which changes that structure to use a complete BeginFrameArgs rather than just a TimeTicks object.
https://codereview.chromium.org/363383002/diff/40001/cc/trees/thread_proxy.cc File cc/trees/thread_proxy.cc (right): https://codereview.chromium.org/363383002/diff/40001/cc/trees/thread_proxy.cc... cc/trees/thread_proxy.cc:719: 0, 0, 0); On 2014/07/08 11:18:51, mithro wrote: > This line I don't quite understand? Isn't all the state you are passing as > arguments actually captured in the begin_main_frame_state structure? > > I have a CL which I'm yet to send out which changes that structure to use a > complete BeginFrameArgs rather than just a TimeTicks object. Yes, the data is inside begin_main_frame_state, but since it's wrapped up in a closure the scheduler can't see it. Because of that we need to also pass in the relevant timestamps next to the task itself. If BeginFrameArgs could survive a round-trip through blink then the scheduler could just pass it back as an argument for the callback, but I'm not sure that's necessary.
James, PTAL. I tried writing tests for this, but turns out RenderThreadImpl has a ton of dependencies :( However, the things I wanted to test are already pretty well covered by the scheduler tests themselves.
Have you measured the overhead this indirection adds? https://codereview.chromium.org/363383002/diff/140001/content/renderer/render... File content/renderer/render_thread_impl.cc (right): https://codereview.chromium.org/363383002/diff/140001/content/renderer/render... content/renderer/render_thread_impl.cc:314: (scheduler_proxy_.*ProxyFunction)(location, new TaskAdapter(task)); hm, so another malloc/free pair for every task we post in the render process? https://codereview.chromium.org/363383002/diff/140001/content/renderer/render... content/renderer/render_thread_impl.cc:339: virtual void run() OVERRIDE { function_.Run(); } and an extra closure wrapper. hmmm
I'll report back with some perf numbers, but meanwhile I've got a question below. https://codereview.chromium.org/363383002/diff/140001/content/renderer/render... File content/renderer/render_thread_impl.cc (right): https://codereview.chromium.org/363383002/diff/140001/content/renderer/render... content/renderer/render_thread_impl.cc:314: (scheduler_proxy_.*ProxyFunction)(location, new TaskAdapter(task)); On 2014/07/22 01:07:23, jamesr wrote: > hm, so another malloc/free pair for every task we post in the render process? Yeah :( Both of these are a consequence of the fact that there's no such thing as WebClosure that we could just hand to the scheduler. I'm guessing it's not okay to add a dependency to base/callback.h into public/web to fix this?
What is the lifecycle of the scheduler? Specifically, what is the shutdown order? On 2014/07/22 16:24:33, Sami wrote: > Yeah :( Both of these are a consequence of the fact that there's no such thing > as WebClosure that we could just hand to the scheduler. I'm guessing it's not > okay to add a dependency to base/callback.h into public/web to fix this? You can't use base/callback from within blink, no.
On 2014/07/22 18:11:26, jamesr wrote: > What is the lifecycle of the scheduler? Specifically, what is the shutdown > order? It shuts down together with Blink, right after WTF. Are you thinking we should have a fallback to the top-level message loop after the scheduler is gone?
On 2014/07/22 01:07:23, jamesr wrote: > Have you measured the overhead this indirection adds? > > https://codereview.chromium.org/363383002/diff/140001/content/renderer/render... > File content/renderer/render_thread_impl.cc (right): > > https://codereview.chromium.org/363383002/diff/140001/content/renderer/render... > content/renderer/render_thread_impl.cc:314: > (scheduler_proxy_.*ProxyFunction)(location, new TaskAdapter(task)); > hm, so another malloc/free pair for every task we post in the render process? > > https://codereview.chromium.org/363383002/diff/140001/content/renderer/render... > content/renderer/render_thread_impl.cc:339: virtual void run() OVERRIDE { > function_.Run(); } > and an extra closure wrapper. hmmm I've done run the ThreadTimes metrics on the old code Vs the new code, the results are here: https://x20web.corp.google.com/~picksi/ThreadTimes.html The column marked 'Baseline' is the original code, in the 'Upgrade' column is running this patch. Each page was run 20 times. The two look essentially identical, within the expected noise.
Now that Simon has checked that the allocations don't seem to be measurable and I've made sure tasks can be posted even if Blink has been torn down, I think this is ready for another look James.
https://codereview.chromium.org/363383002/diff/200001/content/renderer/render... File content/renderer/render_thread_impl.cc (right): https://codereview.chromium.org/363383002/diff/200001/content/renderer/render... content/renderer/render_thread_impl.cc:350: return fallback_task_runner_->PostDelayedTask(from_here, task, delay); why do you have a fallback? when is it used? are there tests that exercise it?
Thanks James, another look? https://codereview.chromium.org/363383002/diff/200001/content/renderer/render... File content/renderer/render_thread_impl.cc (right): https://codereview.chromium.org/363383002/diff/200001/content/renderer/render... content/renderer/render_thread_impl.cc:350: return fallback_task_runner_->PostDelayedTask(from_here, task, delay); On 2014/08/07 17:59:24, jamesr wrote: > why do you have a fallback? when is it used? are there tests that exercise it? I added it as a safe guard based on your comment #6, but now that I took a closer look at the shutdown sequence I don't think it is actually needed. This task runner is used by the input event filter and the impl thread, both of which get torn down before we call blink::shutdown(). I've removed the fallback and added a DCHECK here.
https://codereview.chromium.org/363383002/diff/220001/content/renderer/render... File content/renderer/render_thread_impl.cc (right): https://codereview.chromium.org/363383002/diff/220001/content/renderer/render... content/renderer/render_thread_impl.cc:309: // Helper for forwarding posted tasks into different WebSchedulerProxy queues. this belongs in its own .h/.cc and should have some basic unit tests https://codereview.chromium.org/363383002/diff/220001/content/renderer/render... content/renderer/render_thread_impl.cc:352: virtual void run() OVERRIDE { function_.Run(); } NAK, you should never use OVERRIDE for cross-repository implementations. it makes it way too hard to modify the API in question
https://codereview.chromium.org/363383002/diff/220001/content/renderer/render... File content/renderer/render_thread_impl.cc (right): https://codereview.chromium.org/363383002/diff/220001/content/renderer/render... content/renderer/render_thread_impl.cc:330: from_here.file_name()); this isn't a full fidelity copy of a tracked_objects::Location. The line number is really useful when analyzing traces and while I haven't used the PC I know others have. Is there a deliberate choice here to discard information here?
https://codereview.chromium.org/363383002/diff/220001/content/renderer/render... File content/renderer/render_thread_impl.cc (right): https://codereview.chromium.org/363383002/diff/220001/content/renderer/render... content/renderer/render_thread_impl.cc:331: (scheduler_proxy_.*ProxyFunction)(location, new TaskAdapter(task)); what if you put the original tracked_objects::Location into the TaskAdapter and then generated the trace from TaskAdapter::run()? then you wouldn't need to copy these values and could put fuller information in (i.e. closer to what MessageLoop::RunTask does) it's sad to me that we'll lose the nice tracing and tracking that base/ does for tasks for everything that goes through the proxy. are we going to lose flow events for these completely?
All tasks want to have a Location. If we're forwarding a task, we should forward the location, if we're queueing a new one, we want to use FROM_HERE. Similar was discussed in https://codereview.chromium.org/439923006/ . We added the FROM_HERE logic to Blink a while back and it's been hugely helpful for tracing and silk and solving random timer bugs (like crbug.com/288265).
Having tracking information in blink is great. Discarding parts of the tracking information that already exists for chromium generated tasks is less great. This code: https://code.google.com/p/chromium/codesearch#chromium/src/base/message_loop/... does quite a few things that will be discarded by the task proxying in this patch. These are all pretty valuable - flow events make tracing analysis much simpler, memory tagging is valuable, storing the posting PC on the stack has been the only way we've debugged some hairy crashes in the past, etc. In this case, the source information is coming from chromium and the task is actually being run by chromium, blink is just deciding when to run it. Seems better to me to keep the tracking information stored in chromium types on the chromium side rather than doing a lossy conversion.
Sorry, I wasn't suggesting we should lose data. We can either fix the conversion to be non-lossy, or use Chromium types. I wasn't advocating specifically for Blink types, I was advocating for all task-like-things having source-information.
I like the idea of tracing the task on the Chromium side without any loss of information. I think we *also* want to pass the data (i.e., TraceLocation) to Blink so all of the scheduler's task have location information too. I'll give that a try. By the way, MessageLoop::RunTask only traces the function name, file name and the flow ID. Should we be doing something more with line numbers and PC (aside ensuring it's on the stack)? Or is it enough to have them accessible from the debugger? https://codereview.chromium.org/363383002/diff/220001/content/renderer/render... File content/renderer/render_thread_impl.cc (right): https://codereview.chromium.org/363383002/diff/220001/content/renderer/render... content/renderer/render_thread_impl.cc:309: // Helper for forwarding posted tasks into different WebSchedulerProxy queues. On 2014/08/08 17:06:49, jamesr wrote: > this belongs in its own .h/.cc and should have some basic unit tests Done. https://codereview.chromium.org/363383002/diff/220001/content/renderer/render... content/renderer/render_thread_impl.cc:352: virtual void run() OVERRIDE { function_.Run(); } On 2014/08/08 17:06:49, jamesr wrote: > NAK, you should never use OVERRIDE for cross-repository implementations. it > makes it way too hard to modify the API in question Oops, good catch!
On 2014/08/08 18:40:27, Sami wrote: > I like the idea of tracing the task on the Chromium side without any loss of > information. I think we *also* want to pass the data (i.e., TraceLocation) to > Blink so all of the scheduler's task have location information too. I'll give > that a try. > SGTM > By the way, MessageLoop::RunTask only traces the function name, file name and > the flow ID. Should we be doing something more with line numbers and PC (aside > ensuring it's on the stack)? Or is it enough to have them accessible from the > debugger? I think we should try to do everything it does. Ideally we'd run the same code that MessageLoop::RunTask runs before running the task.
> > By the way, MessageLoop::RunTask only traces the function name, file name and > > the flow ID. Should we be doing something more with line numbers and PC (aside > > ensuring it's on the stack)? Or is it enough to have them accessible from the > > debugger? > > I think we should try to do everything it does. Ideally we'd run the same code > that MessageLoop::RunTask runs before running the task. I've now factored out the debug annotation code from MessageLoop (https://codereview.chromium.org/455833004/) and rewritten this patch to use it.
FYI, I also had to remove the DCHECK for RenderThreadImpl::current() since turns out it's backed by TLS and thus not queryable from other threads.
How's this looking now? (The try job crashes were due to https://codereview.chromium.org/475033002/).
number of style issues to address before landing but otherwise lgtm. the task annotator is nifty https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... File content/renderer/scheduler_proxy_task_runner.h (right): https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... content/renderer/scheduler_proxy_task_runner.h:18: const blink::WebTraceLocation&, this is chromium, parameters get names https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... content/renderer/scheduler_proxy_task_runner.h:61: explicit TaskAdapter(base::debug::TaskAnnotator& task_annotator, this should be a pointer, not a non-const ref. same goes for the member. blink's moved over to using refs for things that should never be null but chromium has not https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... File content/renderer/scheduler_proxy_task_runner_browsertest.cc (right): https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... content/renderer/scheduler_proxy_task_runner_browsertest.cc:17: void testTask(int value, int* result) { this is chromium, functions get UpperCase names https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... content/renderer/scheduler_proxy_task_runner_browsertest.cc:23: class SchedulerProxyTaskRunnerBrowserTest : public testing::Test { this fixture doesn't do anything - why even have it? you can delete this and have TEST(SchedulerProxyTaskRunnerBrowserTest, FooBar) https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... content/renderer/scheduler_proxy_task_runner_browsertest.cc:42: base::MessageLoopForIO message_loop_; this is not a member variable, no trailing _
Thanks, all comments addressed. https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... File content/renderer/scheduler_proxy_task_runner.h (right): https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... content/renderer/scheduler_proxy_task_runner.h:18: const blink::WebTraceLocation&, On 2014/08/14 17:25:59, jamesr wrote: > this is chromium, parameters get names Done. https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... content/renderer/scheduler_proxy_task_runner.h:61: explicit TaskAdapter(base::debug::TaskAnnotator& task_annotator, On 2014/08/14 17:25:59, jamesr wrote: > this should be a pointer, not a non-const ref. same goes for the member. blink's > moved over to using refs for things that should never be null but chromium has > not Thanks, I hadn't picked up on that. Done. https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... File content/renderer/scheduler_proxy_task_runner_browsertest.cc (right): https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... content/renderer/scheduler_proxy_task_runner_browsertest.cc:17: void testTask(int value, int* result) { On 2014/08/14 17:26:00, jamesr wrote: > this is chromium, functions get UpperCase names Done. https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... content/renderer/scheduler_proxy_task_runner_browsertest.cc:23: class SchedulerProxyTaskRunnerBrowserTest : public testing::Test { On 2014/08/14 17:26:00, jamesr wrote: > this fixture doesn't do anything - why even have it? you can delete this and > have TEST(SchedulerProxyTaskRunnerBrowserTest, FooBar) Yup, no need for this. Done. https://codereview.chromium.org/363383002/diff/320001/content/renderer/schedu... content/renderer/scheduler_proxy_task_runner_browsertest.cc:42: base::MessageLoopForIO message_loop_; On 2014/08/14 17:26:00, jamesr wrote: > this is not a member variable, no trailing _ Done.
The CQ bit was checked by skyostil@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/skyostil@chromium.org/363383002/340001
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: android_dbg_triggered_tests on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_dbg_tri...) linux_chromium_chromeos_rel_swarming on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_rel_swarming on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) mac_chromium_rel_swarming on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...) win_chromium_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...) win_chromium_x64_rel on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: mac_chromium_rel_swarming on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by skyostil@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/skyostil@chromium.org/363383002/340001
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: android_dbg_triggered_tests on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_dbg_tri...) linux_chromium_chromeos_rel_swarming on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_rel_swarming on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) mac_chromium_rel_swarming on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...) win_chromium_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...) win_chromium_x64_rel on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: mac_chromium_rel_swarming on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by skyostil@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/skyostil@chromium.org/363383002/340001
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: win_chromium_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: win_chromium_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by skyostil@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/skyostil@chromium.org/363383002/340001
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: win_chromium_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: win_chromium_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by skyostil@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/skyostil@chromium.org/363383002/360001
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: linux_gpu on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/linux_gpu/builds/...) mac_gpu on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/mac_gpu/builds/43882) win_gpu on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/win_gpu/builds/49051) android_aosp on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_aosp/bu...) android_chromium_gn_compile_rel on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_chromiu...) android_clang_dbg on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_clang_d...) android_dbg_tests_recipe on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_dbg_tes...) chromium_presubmit on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...) linux_chromium_chromeos_rel_swarming on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_gn_rel on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_rel_swarming on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) ios_dbg_simulator on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_dbg_simulator...) ios_rel_device on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_rel_device/bu...) ios_rel_device_ninja on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_rel_device_ni...) mac_chromium_compile_dbg on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...) mac_chromium_rel_swarming on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...) win8_chromium_rel on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win8_chromium_rel...) win_chromium_compile_dbg on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_comp...) win_chromium_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...) win_chromium_x64_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: mac_gpu on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/mac_gpu/builds/43884) ios_dbg_simulator on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_dbg_simulator...) ios_rel_device on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_rel_device/bu...) ios_rel_device_ninja on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_rel_device_ni...) mac_chromium_compile_dbg on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...) mac_chromium_rel_swarming on tryserver.chromium.mac (http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by skyostil@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/skyostil@chromium.org/363383002/380001
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: android_dbg_tests_recipe on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_dbg_tes...) win_chromium_compile_dbg on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_comp...)
Message was sent while issue was closed.
Committed patchset #20 (380001) as 290845
The CQ bit was checked by skyostil@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/skyostil@chromium.org/363383002/400001
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: win_chromium_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by skyostil@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/skyostil@chromium.org/363383002/400001
Message was sent while issue was closed.
Committed patchset #21 (id:400001) as 68bab3290b45a8610ad875d3c92530477c16a948
Message was sent while issue was closed.
A revert of this CL (patchset #21 id:400001) has been created in https://codereview.chromium.org/548253002/ by jam@chromium.org. The reason for reverting is: suspecting it's causing the high rate of flakes in Instrumentation test ContentShellTest BUG=411756.
Message was sent while issue was closed.
A revert of this CL (patchset #21 id:400001) has been created in https://codereview.chromium.org/553483005/ by skyostil@chromium.org. The reason for reverting is: 13% regression on page load times. BUG=411520.
Message was sent while issue was closed.
Flakes would be concerning. But PLT regressions are not necessarily surprising or bad. When we land this again we should be sure to call out what regressions are expected in the commit-message/CL-description so that perf-sheriffs won't be surprised.
To reduce the moving parts a little I've made this patch just forward input tasks to the scheduler for now. We'll turn on scheduling for compositor tasks once the remaining issues there are solved.
The CQ bit was checked by skyostil@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/skyostil@chromium.org/363383002/420001
The CQ bit was unchecked by commit-bot@chromium.org
Exceeded time limit waiting for builds to trigger.
The CQ bit was checked by skyostil@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/skyostil@chromium.org/363383002/420001
Message was sent while issue was closed.
Committed patchset #22 (id:420001) as 46e1901b668dbd357ca236b43cf2907c0dd9bb19
Message was sent while issue was closed.
Patchset 22 (id:??) landed as https://crrev.com/796a67f0004f091f6e71a02b982d6727213da685 Cr-Commit-Position: refs/heads/master@{#293513}
Message was sent while issue was closed.
Patchset 22 (id:??) landed as https://crrev.com/457b0a1c94129337a08d0efcc3fd016205a981b4 Cr-Commit-Position: refs/heads/master@{#293914} |