Add support for more task queues in FrameSchedulerImpl |
||
Issue descriptionRefactor FrameSchedulerImpl to support more task queues, which are to be identified by their queue traits (deferrable, pausable, throttleable, freezable). This change will enable dynamic mapping of task types to task queues based on queue traits. Design docs: https://docs.google.com/document/d/1-OtVYWeFnfICDT_vDqqs66k-R5ZU1NsBQ7bZRlgOH5o/edit https://docs.google.com/document/d/1Jm4xLPqv013VfZswgmnoQ7-ghJK92Uf3hIT7WcNcFck/edit#
,
Jul 18
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f87335e795c6018344578acb40c1da2538d3223b commit f87335e795c6018344578acb40c1da2538d3223b Author: Scott Haseley <shaseley@google.com> Date: Wed Jul 18 02:33:49 2018 [scheduler] Adding FrameTaskQueueController FrameTaskQueueController creates and manages the task queues used by FrameSchedulerImpl. It is responsible for tracking the mappings from QueueTraits to MainThreadTaskQueues. This CL adds FrameTaskQueueController and basic task queue management. Refactoring FrameSchedulerImpl to use this new class will be added in a follow-up CL. Design Doc: https://docs.google.com/document/d/1Jm4xLPqv013VfZswgmnoQ7-ghJK92Uf3hIT7WcNcFck/edit?usp=sharing Bug: 859963 Change-Id: Ie9fefaaad83c30f06a13c427e38d54089fc362a4 Reviewed-on: https://chromium-review.googlesource.com/1132691 Commit-Queue: Scott Haseley <shaseley@google.com> Reviewed-by: Alexander Timin <altimin@chromium.org> Cr-Commit-Position: refs/heads/master@{#575912} [modify] https://crrev.com/f87335e795c6018344578acb40c1da2538d3223b/third_party/blink/renderer/platform/scheduler/BUILD.gn [add] https://crrev.com/f87335e795c6018344578acb40c1da2538d3223b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc [add] https://crrev.com/f87335e795c6018344578acb40c1da2538d3223b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h [add] https://crrev.com/f87335e795c6018344578acb40c1da2538d3223b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc [modify] https://crrev.com/f87335e795c6018344578acb40c1da2538d3223b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h
,
Jul 18
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a1906884d7752fad6d4e85771516c3f33b685b9e commit a1906884d7752fad6d4e85771516c3f33b685b9e Author: Scott Haseley <shaseley@google.com> Date: Wed Jul 18 16:35:42 2018 [scheduler] Add resource loading queues to FrameTaskQueueController This CL adds another queue type (resource loading) that FrameTaskQueueController will be responsible for controlling. FrameTaskQueueController provides methods for creating these queues and accessing the related voters. Bug: 859963 Change-Id: I61b10986a68f87b1c4428b1b3926ecd821ee36fa Reviewed-on: https://chromium-review.googlesource.com/1137099 Commit-Queue: Scott Haseley <shaseley@google.com> Reviewed-by: Alexander Timin <altimin@chromium.org> Cr-Commit-Position: refs/heads/master@{#576090} [modify] https://crrev.com/a1906884d7752fad6d4e85771516c3f33b685b9e/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc [modify] https://crrev.com/a1906884d7752fad6d4e85771516c3f33b685b9e/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h [modify] https://crrev.com/a1906884d7752fad6d4e85771516c3f33b685b9e/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc
,
Jul 19
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e2d89968d57604c3121004103f8aaf6e442dd5a1 commit e2d89968d57604c3121004103f8aaf6e442dd5a1 Author: Scott Haseley <shaseley@google.com> Date: Thu Jul 19 20:56:41 2018 [scheduler] Refactor FrameSchedulerImpl to use FrameTaskQueueController This CL moves all task queue management and creation to FrameTaskQueueController and adds the appropriate interface for accessing queues in FrameTaskQueueController. TaskType to QueueTraits management is handled by FrameSchedulerImpl since it embeds policy, and FrameTaskQueueController exposes an interface to get non-loading task queues by QueueTraits, as well as accessing loading and loading control task queues. Bug: 859963 Change-Id: I7db5aaaa148d0dc4f3f70e517e088a205e502db8 Reviewed-on: https://chromium-review.googlesource.com/1142390 Commit-Queue: Scott Haseley <shaseley@google.com> Reviewed-by: Alexander Timin <altimin@chromium.org> Cr-Commit-Position: refs/heads/master@{#576619} [modify] https://crrev.com/e2d89968d57604c3121004103f8aaf6e442dd5a1/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc [modify] https://crrev.com/e2d89968d57604c3121004103f8aaf6e442dd5a1/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h [modify] https://crrev.com/e2d89968d57604c3121004103f8aaf6e442dd5a1/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc [modify] https://crrev.com/e2d89968d57604c3121004103f8aaf6e442dd5a1/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc [modify] https://crrev.com/e2d89968d57604c3121004103f8aaf6e442dd5a1/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h [modify] https://crrev.com/e2d89968d57604c3121004103f8aaf6e442dd5a1/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc [modify] https://crrev.com/e2d89968d57604c3121004103f8aaf6e442dd5a1/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc [modify] https://crrev.com/e2d89968d57604c3121004103f8aaf6e442dd5a1/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h [modify] https://crrev.com/e2d89968d57604c3121004103f8aaf6e442dd5a1/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc [modify] https://crrev.com/e2d89968d57604c3121004103f8aaf6e442dd5a1/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
,
Jul 19
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6bb829af2348e6c94fc4325921218f9d9e886463 commit 6bb829af2348e6c94fc4325921218f9d9e886463 Author: Alex Moshchuk <alexmos@chromium.org> Date: Thu Jul 19 23:34:10 2018 Revert "[scheduler] Refactor FrameSchedulerImpl to use FrameTaskQueueController" This reverts commit e2d89968d57604c3121004103f8aaf6e442dd5a1. Reason for revert: Sorry for the revert, but this appears to be causing consistent crashes in a lot of test steps on Mac Retina Debug (AMD) builder, https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac%20Retina%20Debug%20%28AMD%29/, starting with https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac%20Retina%20Debug%20%28AMD%29/29724 Failure output includes crashes that look like this: Received signal 4 <unknown> 00015635d9cb Received signal 4 <unknown> 0001583019cb 0 libbase.dylib 0x0000000126266ace base::debug::StackTrace::StackTrace(unsigned long) + 174 1 libbase.dylib 0x0000000126266b8d base::debug::StackTrace::StackTrace(unsigned long) + 29 2 libbase.dylib 0x0000000125e462cc base::debug::StackTrace::StackTrace() + 28 3 libbase.dylib 0x00000001262668bf base::debug::(anonymous namespace)::StackDumpSignalHandler(int, __siginfo*, void*) + 1407 4 libsystem_platform.dylib 0x00007fff764fef5a _sigtramp + 26 5 ??? 0x000000010bb4f000 0x0 + 4491374592 6 libblink_platform.dylib 0x000000015635d86f blink::scheduler::FrameSchedulerImpl::InitializeTaskTypeQueueTraitsMap(std::__1::array<base::Optional<blink::scheduler::MainThreadTaskQueue::QueueTraits>, 51ul>&) + 255 7 libblink_platform.dylib 0x0000000156385aab blink::scheduler::MainThreadSchedulerImpl::SchedulingSettings::SchedulingSettings() + 1675 8 libblink_platform.dylib 0x0000000156380325 blink::scheduler::MainThreadSchedulerImpl::SchedulingSettings::SchedulingSettings() + 21 9 libblink_platform.dylib 0x000000015637df5c blink::scheduler::MainThreadSchedulerImpl::MainThreadSchedulerImpl(std::__1::unique_ptr<base::sequence_manager::SequenceManager, std::__1::default_delete<base::sequence_manager::SequenceManager> >, base::Optional<base::Time>) + 348 10 libblink_platform.dylib 0x0000000156382038 blink::scheduler::MainThreadSchedulerImpl::MainThreadSchedulerImpl(std::__1::unique_ptr<base::sequence_manager::SequenceManager, std::__1::default_delete<base::sequence_manager::SequenceManager> >, base::Optional<base::Time>) + 40 11 libblink_platform.dylib 0x0000000156355f42 blink::scheduler::WebThreadScheduler::CreateMainThreadScheduler(base::Optional<base::Time>) + 226 12 libcontent.dylib 0x000000012fd123e9 content::RendererMain(content::MainFunctionParams const&) + 2585 13 libcontent.dylib 0x0000000130094a42 content::RunOtherNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) + 482 14 libcontent.dylib 0x0000000130097d37 content::ContentMainRunnerImpl::Run(bool) + 4519 15 libcontent.dylib 0x000000013008e8dc content::ContentServiceManagerMainDelegate::RunEmbedderProcess() + 76 16 libembedder.dylib 0x000000010c4d1c39 service_manager::Main(service_manager::MainParams const&) + 3753 17 libcontent.dylib 0x00000001300946a9 content::ContentMain(content::ContentMainParams const&) + 89 18 libchrome_dll.dylib 0x000000010cf25bee ChromeMain + 270 19 Chromium Helper 0x000000010bb4ad82 main + 1538 20 libdyld.dylib 0x00007fff761f0015 start + 1 21 ??? 0x0000000000000016 0x0 + 22 [end of stack trace] another one: Received signal 4 <unknown> 0001510e79cb Received signal 4 <unknown> 00015613a9cb 0 libbase.dylib 0x000000012585eace base::debug::StackTrace::StackTrace(unsigned long) + 1740 libbase.dylib 0x0000000109330ace base::debug::StackTrace::StackTrace(unsigned long) + 174 1 libbase.dylib 0x000000012585eb8d base::debug::StackTrace::StackTrace(unsigned long) + 29 1 libbase.dylib 0x0000000109330b8d base::debug::StackTrace::StackTrace(unsigned long) + 29 2 libbase.dylib 0x000000012543e2cc base::debug::StackTrace::StackTrace() + 28 2 libbase.dylib 0x0000000108f102cc base::debug::StackTrace::StackTrace() + 28 3 libbase.dylib 0x000000012585e8bf base::debug::(anonymous namespace)::StackDumpSignalHandler(int, __siginfo*, void*) + 14073 libbase.dylib 0x00000001093308bf base::debug::(anonymous namespace)::StackDumpSignalHandler(int, __siginfo*, void*) + 1407 4 libsystem_platform.dylib 0x00007fff764fef5a _sigtramp + 26 5 ??? 0x00000001068d9000 0x0 + 44049080324 libsystem_platform.dylib 0x00007fff764fef5a _sigtramp + 26 5 ??? 0x000000010b984000 0x0 + 4489494528 6 libblink_platform.dylib 0x00000001510e786f blink::scheduler::FrameSchedulerImpl::InitializeTaskTypeQueueTraitsMap(std::__1::array<base::Optional<blink::scheduler::MainThreadTaskQueue::QueueTraits>, 51ul>&) + 2556 libblink_platform.dylib 0x000000015613a86f blink::scheduler::FrameSchedulerImpl::InitializeTaskTypeQueueTraitsMap(std::__1::array<base::Optional<blink::scheduler::MainThreadTaskQueue::QueueTraits>, 51ul>&) + 255 7 libblink_platform.dylib 0x0000000156162aab blink::scheduler::MainThreadSchedulerImpl::SchedulingSettings::SchedulingSettings() + 1675 7 libblink_platform.dylib 0x000000015110faab blink::scheduler::MainThreadSchedulerImpl::SchedulingSettings::SchedulingSettings() + 1675 8 libblink_platform.dylib 0x000000015615d325 blink::scheduler::MainThreadSchedulerImpl::SchedulingSettings::SchedulingSettings() + 21 8 libblink_platform.dylib 0x000000015110a325 blink::scheduler::MainThreadSchedulerImpl::SchedulingSettings::SchedulingSettings() + 21 9 libblink_platform.dylib 0x000000015615af5c blink::scheduler::MainThreadSchedulerImpl::MainThreadSchedulerImpl(std::__1::unique_ptr<base::sequence_manager::SequenceManager, std::__1::default_delete<base::sequence_manager::SequenceManager> >, base::Optional<base::Time>) + 348 9 libblink_platform.dylib 0x0000000151107f5c blink::scheduler::MainThreadSchedulerImpl::MainThreadSchedulerImpl(std::__1::unique_ptr<base::sequence_manager::SequenceManager, std::__1::default_delete<base::sequence_manager::SequenceManager> >, base::Optional<base::Time>) + 348 10 libblink_platform.dylib 0x000000015615f038 blink::scheduler::MainThreadSchedulerImpl::MainThreadSchedulerImpl(std::__1::unique_ptr<base::sequence_manager::SequenceManager, std::__1::default_delete<base::sequence_manager::SequenceManager> >, base::Optional<base::Time>) + 40 10 libblink_platform.dylib 0x000000015110c038 blink::scheduler::MainThreadSchedulerImpl::MainThreadSchedulerImpl(std::__1::unique_ptr<base::sequence_manager::SequenceManager, std::__1::default_delete<base::sequence_manager::SequenceManager> >, base::Optional<base::Time>) + 40 11 libblink_platform.dylib 0x0000000156132f42 blink::scheduler::WebThreadScheduler::CreateMainThreadScheduler(base::Optional<base::Time>) + 226 11 libblink_platform.dylib 0x00000001510dff42 blink::scheduler::WebThreadScheduler::CreateMainThreadScheduler(base::Optional<base::Time>) + 226 12 libcontent.dylib 0x000000012faef3e9 content::RendererMain(content::MainFunctionParams const&) + 2585 12 libcontent.dylib 0x00000001306f73e9 content::RendererMain(content::MainFunctionParams const&) + 2585 13 libcontent.dylib 0x000000012fe71a42 content::RunOtherNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) + 482 13 libcontent.dylib 0x0000000130a79a42 content::RunOtherNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) + 482 14 libcontent.dylib 0x000000012fe74d37 content::ContentMainRunnerImpl::Run(bool) + 4519 14 libcontent.dylib 0x0000000130a7cd37 content::ContentMainRunnerImpl::Run(bool) + 4519 15 libcontent.dylib 0x000000012fe6b8dc content::ContentServiceManagerMainDelegate::RunEmbedderProcess() + 76 15 libcontent.dylib 0x0000000130a738dc content::ContentServiceManagerMainDelegate::RunEmbedderProcess() + 76 16 libembedder.dylib 0x000000012529cc39 service_manager::Main(service_manager::MainParams const&) + 3753 16 libembedder.dylib 0x0000000108d6ec39 service_manager::Main(service_manager::MainParams const&) + 3753 17 libcontent.dylib 0x000000012fe716a9 content::ContentMain(content::ContentMainParams const&) + 89 17 libcontent.dylib 0x0000000130a796a9 content::ContentMain(content::ContentMainParams const&) + 89 18 libchrome_dll.dylib 0x00000001149bcbee ChromeMain + 27018 libchrome_dll.dylib 0x000000010d7c6bee ChromeMain + 270 19 Chromium Helper 0x000000010b927d82 main + 1538 19 Chromium Helper 0x00000001068d4d82 main + 1538 20 libdyld.dylib 0x00007fff761f0015 start + 1 20 libdyld.dylib 0x00007fff761f0015 start + 1 [end of stack trace] Original change's description: > [scheduler] Refactor FrameSchedulerImpl to use FrameTaskQueueController > > This CL moves all task queue management and creation to > FrameTaskQueueController and adds the appropriate interface for > accessing queues in FrameTaskQueueController. TaskType to QueueTraits > management is handled by FrameSchedulerImpl since it embeds policy, and > FrameTaskQueueController exposes an interface to get non-loading task > queues by QueueTraits, as well as accessing loading and loading > control task queues. > > Bug: 859963 > Change-Id: I7db5aaaa148d0dc4f3f70e517e088a205e502db8 > Reviewed-on: https://chromium-review.googlesource.com/1142390 > Commit-Queue: Scott Haseley <shaseley@google.com> > Reviewed-by: Alexander Timin <altimin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#576619} TBR=altimin@chromium.org,panicker@chromium.org,shaseley@google.com Change-Id: Id530bf4cb109b0d35ff9b038e7620273db0388be No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 859963 Reviewed-on: https://chromium-review.googlesource.com/1144064 Reviewed-by: Alex Moshchuk <alexmos@chromium.org> Commit-Queue: Alex Moshchuk <alexmos@chromium.org> Cr-Commit-Position: refs/heads/master@{#576689} [modify] https://crrev.com/6bb829af2348e6c94fc4325921218f9d9e886463/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc [modify] https://crrev.com/6bb829af2348e6c94fc4325921218f9d9e886463/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h [modify] https://crrev.com/6bb829af2348e6c94fc4325921218f9d9e886463/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc [modify] https://crrev.com/6bb829af2348e6c94fc4325921218f9d9e886463/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc [modify] https://crrev.com/6bb829af2348e6c94fc4325921218f9d9e886463/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h [modify] https://crrev.com/6bb829af2348e6c94fc4325921218f9d9e886463/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc [modify] https://crrev.com/6bb829af2348e6c94fc4325921218f9d9e886463/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc [modify] https://crrev.com/6bb829af2348e6c94fc4325921218f9d9e886463/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h [modify] https://crrev.com/6bb829af2348e6c94fc4325921218f9d9e886463/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc [modify] https://crrev.com/6bb829af2348e6c94fc4325921218f9d9e886463/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
,
Jul 25
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4 commit fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4 Author: Scott Haseley <shaseley@google.com> Date: Wed Jul 25 19:12:55 2018 Reland "[scheduler] Refactor FrameSchedulerImpl to use FrameTaskQueueController" This is a reland of e2d89968d57604c3121004103f8aaf6e442dd5a1 Original change's description: > [scheduler] Refactor FrameSchedulerImpl to use FrameTaskQueueController > > This CL moves all task queue management and creation to > FrameTaskQueueController and adds the appropriate interface for > accessing queues in FrameTaskQueueController. TaskType to QueueTraits > management is handled by FrameSchedulerImpl since it embeds policy, and > FrameTaskQueueController exposes an interface to get non-loading task > queues by QueueTraits, as well as accessing loading and loading > control task queues. > > Bug: 859963 > Change-Id: I7db5aaaa148d0dc4f3f70e517e088a205e502db8 > Reviewed-on: https://chromium-review.googlesource.com/1142390 > Commit-Queue: Scott Haseley <shaseley@google.com> > Reviewed-by: Alexander Timin <altimin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#576619} Bug: 859963 Change-Id: Id2c9179b580759b815602d61b98c99d1f3f5253d Reviewed-on: https://chromium-review.googlesource.com/1144608 Commit-Queue: Scott Haseley <shaseley@google.com> Reviewed-by: Alexander Timin <altimin@chromium.org> Cr-Commit-Position: refs/heads/master@{#578008} [modify] https://crrev.com/fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc [modify] https://crrev.com/fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h [modify] https://crrev.com/fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc [modify] https://crrev.com/fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc [modify] https://crrev.com/fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h [modify] https://crrev.com/fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc [modify] https://crrev.com/fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc [modify] https://crrev.com/fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h [modify] https://crrev.com/fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc [modify] https://crrev.com/fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
,
Jul 25
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b2b40367421d185b499deb0d7d19be7b141a39d8 commit b2b40367421d185b499deb0d7d19be7b141a39d8 Author: Derek Cheng <imcheng@chromium.org> Date: Wed Jul 25 21:23:03 2018 Revert "Reland "[scheduler] Refactor FrameSchedulerImpl to use FrameTaskQueueController"" This reverts commit fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4. Reason for revert: Broke https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/linux-chromeos-dbg/6992 [ RUN ] MainThreadSchedulerImplTest.Tracing Received signal 11 <unknown> 000000000000 #0 0x7fb8aa445edd base::debug::StackTrace::StackTrace() #1 0x7fb8aa15949c base::debug::StackTrace::StackTrace() #2 0x7fb8aa445968 base::debug::(anonymous namespace)::StackDumpSignalHandler() #3 0x7fb89dd8a330 <unknown> #4 0x7fb8aa3eb77e logging::CheckEQImpl<>() #5 0x7fb8aa3e531c base::trace_event::TracedValue::EndDictionary() #6 0x7fb8aaf41afe blink::scheduler::MainThreadSchedulerImpl::AsValueLocked() #7 0x7fb8aaf40792 blink::scheduler::MainThreadSchedulerImpl::AsValue() #8 0x00000181a3aa blink::scheduler::main_thread_scheduler_impl_unittest::MainThreadSchedulerImplTest_Tracing_Test::TestBody() #9 0x000000c4452e testing::internal::HandleSehExceptionsInMethodIfSupported<>() #10 0x000000c38192 testing::internal::HandleExceptionsInMethodIfSupported<>() #11 0x000000c1bd06 testing::Test::Run() #12 0x000000c1c6f0 testing::TestInfo::Run() #13 0x000000c1d19f testing::TestCase::Run() #14 0x000000c2f348 testing::internal::UnitTestImpl::RunAllTests() #15 0x000000c445be testing::internal::HandleSehExceptionsInMethodIfSupported<>() #16 0x000000c39942 testing::internal::HandleExceptionsInMethodIfSupported<>() #17 0x000000c2efa7 testing::UnitTest::Run() #18 0x000001a62ac1 RUN_ALL_TESTS() #19 0x000001a5f48b base::TestSuite::Run() #20 0x000000bd1d45 (anonymous namespace)::runTestSuite() #21 0x000000a3e560 _ZN4base8internal13FunctorTraitsIPFvPbEvE6InvokeIRKS4_JRKS2_EEEvOT_DpOT0_ #22 0x000000a3e51d _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIPFvPbEJS4_EEEvOT_DpOT0_ #23 0x000000bd1f75 _ZN4base8internal7InvokerINS0_9BindStateIPFiPNS_9TestSuiteEEJNS0_17UnretainedWrapperIS3_EEEEEFivEE7RunImplIS6_NSt3__15tupleIJS8_EEEJLm0EEEEiOT_OT0_NSD_16integer_sequenceImJXspT1_EEEE #24 0x000000bd1ec9 _ZN4base8internal7InvokerINS0_9BindStateIPFiPNS_9TestSuiteEEJNS0_17UnretainedWrapperIS3_EEEEEFivEE7RunOnceEPNS0_13BindStateBaseE #25 0x000001a708fe _ZNO4base12OnceCallbackIFivEE3RunEv #26 0x000001a697d0 base::(anonymous namespace)::LaunchUnitTestsInternal() #27 0x000001a69645 base::LaunchUnitTests() #28 0x000000bd1cd6 main #29 0x7fb89d4c3f45 __libc_start_main #30 0x000000552d1a _start r8: 0000000000000001 r9: 00007fff6f9d4b30 r10: 0000000000000000 r11: 0000000000000000 r12: 0000000000552cf0 r13: 00007fff6f9d6af0 r14: 0000000000000000 r15: 0000000000000000 di: 00007fb8aa50a878 si: 200031ca83cdc758 bp: 00007fff6f9d4990 bx: 0000000000000000 dx: 00007fff6f9d4ae8 ax: 00007fb8aa50a800 cx: 0000000000000000 sp: 00007fff6f9d4960 ip: 00007fb8aa3eb77e efl: 0000000000010246 cgf: 0000000000000033 erf: 0000000000000000 trp: 000000000000000d msk: 0000000000000000 cr2: 0000000000000000 [end of stack trace] Calling _exit(1). Core file will not be generated. Original change's description: > Reland "[scheduler] Refactor FrameSchedulerImpl to use FrameTaskQueueController" > > This is a reland of e2d89968d57604c3121004103f8aaf6e442dd5a1 > > Original change's description: > > [scheduler] Refactor FrameSchedulerImpl to use FrameTaskQueueController > > > > This CL moves all task queue management and creation to > > FrameTaskQueueController and adds the appropriate interface for > > accessing queues in FrameTaskQueueController. TaskType to QueueTraits > > management is handled by FrameSchedulerImpl since it embeds policy, and > > FrameTaskQueueController exposes an interface to get non-loading task > > queues by QueueTraits, as well as accessing loading and loading > > control task queues. > > > > Bug: 859963 > > Change-Id: I7db5aaaa148d0dc4f3f70e517e088a205e502db8 > > Reviewed-on: https://chromium-review.googlesource.com/1142390 > > Commit-Queue: Scott Haseley <shaseley@google.com> > > Reviewed-by: Alexander Timin <altimin@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#576619} > > Bug: 859963 > Change-Id: Id2c9179b580759b815602d61b98c99d1f3f5253d > Reviewed-on: https://chromium-review.googlesource.com/1144608 > Commit-Queue: Scott Haseley <shaseley@google.com> > Reviewed-by: Alexander Timin <altimin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#578008} TBR=altimin@chromium.org,panicker@chromium.org,shaseley@google.com Change-Id: Ia71d2641655c8100b82a8ce7e4a11009d19b5e9a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 859963 Reviewed-on: https://chromium-review.googlesource.com/1150585 Reviewed-by: Derek Cheng <imcheng@chromium.org> Commit-Queue: Derek Cheng <imcheng@chromium.org> Cr-Commit-Position: refs/heads/master@{#578067} [modify] https://crrev.com/b2b40367421d185b499deb0d7d19be7b141a39d8/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc [modify] https://crrev.com/b2b40367421d185b499deb0d7d19be7b141a39d8/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h [modify] https://crrev.com/b2b40367421d185b499deb0d7d19be7b141a39d8/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc [modify] https://crrev.com/b2b40367421d185b499deb0d7d19be7b141a39d8/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc [modify] https://crrev.com/b2b40367421d185b499deb0d7d19be7b141a39d8/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h [modify] https://crrev.com/b2b40367421d185b499deb0d7d19be7b141a39d8/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc [modify] https://crrev.com/b2b40367421d185b499deb0d7d19be7b141a39d8/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc [modify] https://crrev.com/b2b40367421d185b499deb0d7d19be7b141a39d8/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h [modify] https://crrev.com/b2b40367421d185b499deb0d7d19be7b141a39d8/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc [modify] https://crrev.com/b2b40367421d185b499deb0d7d19be7b141a39d8/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
,
Jul 26
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/99e57179f99e35215b846ace54188a18260aeaff commit 99e57179f99e35215b846ace54188a18260aeaff Author: Scott Haseley <shaseley@google.com> Date: Thu Jul 26 22:22:17 2018 Reland "Reland "[scheduler] Refactor FrameSchedulerImpl to use FrameTaskQueueController"" This is a reland of fa8e9207b7ab56db8ecd5ef5be21c1944b27a6c4 Original change's description: >Reland "[scheduler] Refactor FrameSchedulerImpl to use FrameTaskQueueController" > >This is a reland of e2d89968d57604c3121004103f8aaf6e442dd5a1 > >Original change's description: >> [scheduler] Refactor FrameSchedulerImpl to use FrameTaskQueueController >> >> This CL moves all task queue management and creation to >> FrameTaskQueueController and adds the appropriate interface for >> accessing queues in FrameTaskQueueController. TaskType to QueueTraits >> management is handled by FrameSchedulerImpl since it embeds policy, and >> FrameTaskQueueController exposes an interface to get non-loading task >> queues by QueueTraits, as well as accessing loading and loading >> control task queues. >> >> Bug: 859963 >> Change-Id: I7db5aaaa148d0dc4f3f70e517e088a205e502db8 >> Reviewed-on: https://chromium-review.googlesource.com/1142390 >> Commit-Queue: Scott Haseley <shaseley@google.com> >> Reviewed-by: Alexander Timin <altimin@chromium.org> >> Cr-Commit-Position: refs/heads/master@{#576619} > >Bug: 859963 >Change-Id: Id2c9179b580759b815602d61b98c99d1f3f5253d >Reviewed-on: https://chromium-review.googlesource.com/1144608 >Commit-Queue: Scott Haseley <shaseley@google.com> >Reviewed-by: Alexander Timin <altimin@chromium.org> >Cr-Commit-Position: refs/heads/master@{#578008} Bug: 859963 Change-Id: I57e49ea8a7c60b2f0e33905a6701fcb96b5b28bf Reviewed-on: https://chromium-review.googlesource.com/1150910 Commit-Queue: Scott Haseley <shaseley@google.com> Reviewed-by: Alexander Timin <altimin@chromium.org> Cr-Commit-Position: refs/heads/master@{#578464} [modify] https://crrev.com/99e57179f99e35215b846ace54188a18260aeaff/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc [modify] https://crrev.com/99e57179f99e35215b846ace54188a18260aeaff/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h [modify] https://crrev.com/99e57179f99e35215b846ace54188a18260aeaff/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc [modify] https://crrev.com/99e57179f99e35215b846ace54188a18260aeaff/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.cc [modify] https://crrev.com/99e57179f99e35215b846ace54188a18260aeaff/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h [modify] https://crrev.com/99e57179f99e35215b846ace54188a18260aeaff/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc [modify] https://crrev.com/99e57179f99e35215b846ace54188a18260aeaff/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc [modify] https://crrev.com/99e57179f99e35215b846ace54188a18260aeaff/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h [modify] https://crrev.com/99e57179f99e35215b846ace54188a18260aeaff/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc [modify] https://crrev.com/99e57179f99e35215b846ace54188a18260aeaff/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
,
Jul 30
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8aefbd89b8fe26a736055fb5393047f32dcba83a commit 8aefbd89b8fe26a736055fb5393047f32dcba83a Author: Scott Haseley <shaseley@google.com> Date: Mon Jul 30 20:00:48 2018 [scheduler] Add ThrottleAndFreezeTaskTypes experiment Add support for setting the throttleable and freezable task types through field trial parameters. BUG: 859963 Change-Id: Icca5df00fd7a918e52f9c4c7e08b0a85515ddbb2 Reviewed-on: https://chromium-review.googlesource.com/1143891 Commit-Queue: Scott Haseley <shaseley@google.com> Reviewed-by: Alexander Timin <altimin@chromium.org> Cr-Commit-Position: refs/heads/master@{#579133} [modify] https://crrev.com/8aefbd89b8fe26a736055fb5393047f32dcba83a/third_party/blink/renderer/platform/scheduler/BUILD.gn [add] https://crrev.com/8aefbd89b8fe26a736055fb5393047f32dcba83a/third_party/blink/renderer/platform/scheduler/child/features.cc [modify] https://crrev.com/8aefbd89b8fe26a736055fb5393047f32dcba83a/third_party/blink/renderer/platform/scheduler/child/features.h [modify] https://crrev.com/8aefbd89b8fe26a736055fb5393047f32dcba83a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc [modify] https://crrev.com/8aefbd89b8fe26a736055fb5393047f32dcba83a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc [modify] https://crrev.com/8aefbd89b8fe26a736055fb5393047f32dcba83a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc [add] https://crrev.com/8aefbd89b8fe26a736055fb5393047f32dcba83a/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.cc [add] https://crrev.com/8aefbd89b8fe26a736055fb5393047f32dcba83a/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h
,
Aug 3
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7757f6c3f7beb2f0ba9433da33b0619ac719031b commit 7757f6c3f7beb2f0ba9433da33b0619ac719031b Author: Scott Haseley <shaseley@google.com> Date: Fri Aug 03 14:33:23 2018 [scheduler] Move stop-non-timers-in-background flag to blink features The StopNonTimersInBackground flag is used by scheduler to initialize the freezable bits for tasks. This happens before Blink initialization, so the flag wasn't set yet when initializing QueueTraits. This CL moves the flag from runtime enabled features to blink features, which are initialized earlier and can be checked directly during QueueTraits initialization. BUG: 859963 Change-Id: I62e9896cd3c75a04d23372b44e9697432d109088 Reviewed-on: https://chromium-review.googlesource.com/1159205 Reviewed-by: Alexander Timin <altimin@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Commit-Queue: Scott Haseley <shaseley@google.com> Cr-Commit-Position: refs/heads/master@{#580540} [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/chrome/browser/about_flags.cc [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/content/child/runtime_features.cc [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/content/public/common/content_features.cc [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/content/public/common/content_features.h [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/third_party/blink/common/features.cc [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/third_party/blink/public/common/features.h [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/third_party/blink/public/platform/web_runtime_features.h [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/third_party/blink/renderer/platform/exported/web_runtime_features.cc [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/third_party/blink/renderer/platform/runtime_enabled_features.json5 [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc [modify] https://crrev.com/7757f6c3f7beb2f0ba9433da33b0619ac719031b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
,
Aug 20
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c993165c1714576d4b7b77c3b1996193721b468e commit c993165c1714576d4b7b77c3b1996193721b468e Author: Scott Haseley <shaseley@google.com> Date: Mon Aug 20 18:45:09 2018 [scheduler] FrameSchedulerImpl cleanup This CL cleans up a few items in FrameSchedulerImpl from migrating to frame-level scheduling and using FrameTaskQueueController: 1) Rename variables methods to reflect the possibility of multiple throttleable task queues. 2) Separate updating throttling state from updating throttleable task queues (to remove second iteration over task queues). 3) Call UpdateQueuePolicy for newly created task queues which will set voter enabled (including frozen) and task queue priority. 4) Fix ref count churn in UpdateQueuePolicy(). Also, a few misc cleanup items: 1) Fix typo in components/scheduling_metrics/OWNERS 2) Remove a file from BUILD that no longer exists. Bug: 859963 Change-Id: Ia10613f92f1a91abb463f560ead1cbb5e91971d7 Reviewed-on: https://chromium-review.googlesource.com/1178964 Commit-Queue: Scott Haseley <shaseley@google.com> Reviewed-by: Alexander Timin <altimin@chromium.org> Cr-Commit-Position: refs/heads/master@{#584513} [modify] https://crrev.com/c993165c1714576d4b7b77c3b1996193721b468e/components/scheduling_metrics/OWNERS [modify] https://crrev.com/c993165c1714576d4b7b77c3b1996193721b468e/third_party/blink/public/BUILD.gn [modify] https://crrev.com/c993165c1714576d4b7b77c3b1996193721b468e/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc [modify] https://crrev.com/c993165c1714576d4b7b77c3b1996193721b468e/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h
,
Aug 23
|
||
►
Sign in to add a comment |
||
Comment 1 by bugdroid1@chromium.org
, Jul 12