Replace existing 1Hz timer alignment with wakeup-based budget throttling. It will allow us to throttle more task types. Design doc: https://docs.google.com/document/d/1A87Ci3_USDyQEdlmXTO1spQxUcR_ML5zqiCsaow4NGM/edit
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e6d316b45c718f370db99f9a319646be8f892aba commit e6d316b45c718f370db99f9a319646be8f892aba Author: altimin <altimin@chromium.org> Date: Thu Mar 09 15:10:44 2017 [scheduler] Move TimeBudgetPool to a separate file. This is one of the few CLs refactoring budget pool mechanisms for the addition of the new WakeupBudgetPool. - Move TimeBudgetPool into budget_pool.h to keep task_queue_throttler size manageable. - Split TimeBudgetPool into BudgetPool (interface) and TimeBudgetPool (realisation). There will be a separate CL uncoupling TaskQueueThrottler from BudgetPool. R=alexclarke@chromium.org,skyostil@chromium.org BUG=699541 Review-Url: https://codereview.chromium.org/2741473002 Cr-Commit-Position: refs/heads/master@{#455747} [modify] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/BUILD.gn [add] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.cc [add] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.h [add] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool_unittest.cc [modify] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc [modify] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc [modify] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h [modify] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc [modify] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.cc [modify] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.h [modify] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc [modify] https://crrev.com/e6d316b45c718f370db99f9a319646be8f892aba/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dbd112157be505b23f60116a3636870aee7ade32 commit dbd112157be505b23f60116a3636870aee7ade32 Author: altimin <altimin@chromium.org> Date: Thu Mar 16 11:53:05 2017 [scheduler] Untangle BudgetPool from TaskQueueThrottler. This is the refactoring needed for new wakeup-based throttling mechanism. Remove friendship between BudgetPools and TaskQueueThrottler. R=skyostil@chromium.org,alexclarke@chromium.org BUG=699541 Review-Url: https://codereview.chromium.org/2742383005 Cr-Commit-Position: refs/heads/master@{#457395} [modify] https://crrev.com/dbd112157be505b23f60116a3636870aee7ade32/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.cc [modify] https://crrev.com/dbd112157be505b23f60116a3636870aee7ade32/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.h [modify] https://crrev.com/dbd112157be505b23f60116a3636870aee7ade32/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc [modify] https://crrev.com/dbd112157be505b23f60116a3636870aee7ade32/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e6967d7ed906839db8acfdc287bfd209e481062c commit e6967d7ed906839db8acfdc287bfd209e481062c Author: altimin <altimin@chromium.org> Date: Fri Mar 17 16:05:22 2017 [scheduler] Support adding one queue to multiple budget pools This refactoring prepares for wakeup-based throttling and introduction of the WakeupBudgetPool. R=skyostil@chromium.org,alexclarke@chromium.org BUG=699541 Review-Url: https://codereview.chromium.org/2754853003 Cr-Commit-Position: refs/heads/master@{#457784} [modify] https://crrev.com/e6967d7ed906839db8acfdc287bfd209e481062c/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc [modify] https://crrev.com/e6967d7ed906839db8acfdc287bfd209e481062c/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h [modify] https://crrev.com/e6967d7ed906839db8acfdc287bfd209e481062c/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ba7dda2a1174b01ffa47e1de8afd38501d307f1b commit ba7dda2a1174b01ffa47e1de8afd38501d307f1b Author: altimin <altimin@chromium.org> Date: Tue Mar 21 16:03:16 2017 [scheduler] CPUTimeBudgetPool: Require a minimal level of budget to run Another refactoring for wakeup-based budget throttling. Add an option to require a certain minimal budget level to unblock CPUTimeBudgetPool. This is required to prevent situation when wakeup happens and TimeBudgetPool does not have budget to run tasks. BUG=699541 Review-Url: https://codereview.chromium.org/2761503002 Cr-Commit-Position: refs/heads/master@{#458428} [modify] https://crrev.com/ba7dda2a1174b01ffa47e1de8afd38501d307f1b/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.cc [modify] https://crrev.com/ba7dda2a1174b01ffa47e1de8afd38501d307f1b/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.h [modify] https://crrev.com/ba7dda2a1174b01ffa47e1de8afd38501d307f1b/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool_unittest.cc [modify] https://crrev.com/ba7dda2a1174b01ffa47e1de8afd38501d307f1b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc [modify] https://crrev.com/ba7dda2a1174b01ffa47e1de8afd38501d307f1b/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc [modify] https://crrev.com/ba7dda2a1174b01ffa47e1de8afd38501d307f1b/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h [modify] https://crrev.com/ba7dda2a1174b01ffa47e1de8afd38501d307f1b/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc [modify] https://crrev.com/ba7dda2a1174b01ffa47e1de8afd38501d307f1b/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c15fed41a2b548c5aaa5959c8a0c9498f4f38617 commit c15fed41a2b548c5aaa5959c8a0c9498f4f38617 Author: altimin <altimin@chromium.org> Date: Tue Mar 28 13:53:15 2017 [scheduler] Refactor common code into BudgetPool. In preparation to introduction of WakeupBudgetPool, move common code from CPUTimeBudgetPool into BudgetPool. R=skyostil@chromium.org,alexclarke@chromium.org BUG=699541 Review-Url: https://codereview.chromium.org/2778743004 Cr-Commit-Position: refs/heads/master@{#460084} [modify] https://crrev.com/c15fed41a2b548c5aaa5959c8a0c9498f4f38617/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.cc [modify] https://crrev.com/c15fed41a2b548c5aaa5959c8a0c9498f4f38617/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d7d63db66473bc81e84e1546c346566745f1f8aa commit d7d63db66473bc81e84e1546c346566745f1f8aa Author: altimin <altimin@chromium.org> Date: Mon Apr 03 16:05:49 2017 [scheduler] Split lock in TaskQueueImpl. Move immediate_incoming_queue from AnyThread and protect it with its own lock. This will allow to call TaskQueue::HasPendingImmediateWork and some other methods from TimeDomain::OnTimeDomainHasImmediateWork. BUG=699541 Review-Url: https://codereview.chromium.org/2781323003 Cr-Commit-Position: refs/heads/master@{#461443} [modify] https://crrev.com/d7d63db66473bc81e84e1546c346566745f1f8aa/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc [modify] https://crrev.com/d7d63db66473bc81e84e1546c346566745f1f8aa/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.h [modify] https://crrev.com/d7d63db66473bc81e84e1546c346566745f1f8aa/third_party/WebKit/Source/platform/scheduler/base/work_queue.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/eafdfdb6623fccf2b2733d286f1e9a29d9784f66 commit eafdfdb6623fccf2b2733d286f1e9a29d9784f66 Author: altimin <altimin@chromium.org> Date: Wed Apr 05 17:22:51 2017 [scheduler] Add TaskQueue::Observer Remove TimeDomain::Observer and replace it with TaskQueue::Observer, which provides notifications about change of wakeups. R=skyostil@chromium.org CC=skyostil@chromium.org BUG=699541 Review-Url: https://codereview.chromium.org/2798563003 Cr-Commit-Position: refs/heads/master@{#462129} [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/content/browser/devtools/protocol/devtools_protocol_browsertest.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/real_time_domain.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/real_time_domain.h [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.h [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.h [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_perftest.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/task_queue_selector_unittest.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/thread_load_tracker.h [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/time_domain.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/time_domain.h [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/time_domain_unittest.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/virtual_time_domain.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/base/virtual_time_domain.h [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/child/compositor_worker_scheduler.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/child/idle_helper.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler_unittest.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/renderer/auto_advancing_virtual_time_domain.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/renderer/auto_advancing_virtual_time_domain.h [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.h [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/renderer/throttled_time_domain.cc [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/Source/platform/scheduler/renderer/throttled_time_domain.h [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/public/platform/scheduler/base/task_queue.h [modify] https://crrev.com/eafdfdb6623fccf2b2733d286f1e9a29d9784f66/third_party/WebKit/public/platform/scheduler/child/single_thread_idle_task_runner.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3 commit ba9363ef7982baf4624b1c9e88cb691e7ce5eed3 Author: robliao <robliao@chromium.org> Date: Mon Apr 10 23:40:22 2017 Revert of [scheduler] Add TaskQueue::Observer (patchset #6 id:100001 of https://codereview.chromium.org/2798563003/ ) Reason for revert: This regresses loading of some websites. Original issue's description: > [scheduler] Add TaskQueue::Observer > > Remove TimeDomain::Observer and replace it with TaskQueue::Observer, > which provides notifications about change of wakeups. > > R=skyostil@chromium.org > CC=skyostil@chromium.org > BUG=699541 > > Review-Url: https://codereview.chromium.org/2798563003 > Cr-Commit-Position: refs/heads/master@{#462129} > Committed: https://chromium.googlesource.com/chromium/src/+/eafdfdb6623fccf2b2733d286f1e9a29d9784f66 TBR=skyostil@chromium.org,dgozman@chromium.org,alexclarke@chromium.org,altimin@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=699541,710095 Review-Url: https://codereview.chromium.org/2812703002 Cr-Commit-Position: refs/heads/master@{#463445} [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/content/browser/devtools/protocol/devtools_protocol_browsertest.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/real_time_domain.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/real_time_domain.h [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.h [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.h [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_perftest.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/task_queue_selector_unittest.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/thread_load_tracker.h [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/time_domain.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/time_domain.h [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/time_domain_unittest.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/virtual_time_domain.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/base/virtual_time_domain.h [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/child/compositor_worker_scheduler.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/child/idle_helper.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler_unittest.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/renderer/auto_advancing_virtual_time_domain.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/renderer/auto_advancing_virtual_time_domain.h [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.h [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/renderer/throttled_time_domain.cc [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/Source/platform/scheduler/renderer/throttled_time_domain.h [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/public/platform/scheduler/base/task_queue.h [modify] https://crrev.com/ba9363ef7982baf4624b1c9e88cb691e7ce5eed3/third_party/WebKit/public/platform/scheduler/child/single_thread_idle_task_runner.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/68875cc7e32820645c9cbc8795d98486565848f4 commit 68875cc7e32820645c9cbc8795d98486565848f4 Author: altimin <altimin@chromium.org> Date: Tue Apr 11 20:40:29 2017 [scheduler] Add TaskQueue::Observer Remove TimeDomain::Observer and replace it with TaskQueue::Observer, which provides notifications about change of wakeups. R=skyostil@chromium.org CC=skyostil@chromium.org BUG=699541 Review-Url: https://codereview.chromium.org/2798563003 Cr-Original-Commit-Position: refs/heads/master@{#462129} Committed: https://chromium.googlesource.com/chromium/src/+/eafdfdb6623fccf2b2733d286f1e9a29d9784f66 Review-Url: https://codereview.chromium.org/2798563003 Cr-Commit-Position: refs/heads/master@{#463755} [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/content/browser/devtools/protocol/devtools_protocol_browsertest.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/real_time_domain.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/real_time_domain.h [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.h [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_perftest.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/task_queue_selector_unittest.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/time_domain.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/time_domain.h [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/time_domain_unittest.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/virtual_time_domain.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/base/virtual_time_domain.h [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/child/compositor_worker_scheduler.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/renderer/auto_advancing_virtual_time_domain.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/renderer/throttled_time_domain.cc [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/Source/platform/scheduler/renderer/throttled_time_domain.h [modify] https://crrev.com/68875cc7e32820645c9cbc8795d98486565848f4/third_party/WebKit/public/platform/scheduler/base/task_queue.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9 commit db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9 Author: altimin <altimin@chromium.org> Date: Fri May 05 18:47:54 2017 [scheduler] Add WakeupBudgetPool. WakeupBudgetPool allows a short chain of fast continuation tasks to when immediately even when throttled (old throttling mechanism introduced a second delay between each pair). Please note that full task queue throttler integration is still missing (task queue throttler still inserts fences unconditionally) and will be added in a later patch. R=skyostil@chromium.org,alexclarke@chromium.org BUG=699541 Review-Url: https://codereview.chromium.org/2778123003 Cr-Commit-Position: refs/heads/master@{#469736} [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/BUILD.gn [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/base/task_queue.h [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.h [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.cc [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool.h [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/budget_pool_unittest.cc [add] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/cpu_time_budget_pool.cc [add] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/cpu_time_budget_pool.h [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.h [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler_unittest.cc [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/throttled_time_domain.cc [modify] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/throttled_time_domain.h [add] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/wake_up_budget_pool.cc [add] https://crrev.com/db65a6534a5e4ee5bdc0e5d31bdec2d95bc65ca9/third_party/WebKit/Source/platform/scheduler/renderer/wake_up_budget_pool.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0f67a0c1b7f0e461114771b4297f5fc0a0202cee commit 0f67a0c1b7f0e461114771b4297f5fc0a0202cee Author: altimin <altimin@chromium.org> Date: Thu May 11 15:06:35 2017 [scheduler] Change TaskQueue observer call mechanism. Instead of manually calling TaskQueue observer we can rely on TimeDomain calling SetScheduledTimeDomainWakeUp and we can call the observer from there. This patch also fixes the problem where pages were stuck due to a missing notification. Test coverage is improved and HasPendingImmediateWork renamed to HasTaskToRunImmediately to better reflect its meaning. R=alexclarke@chromium.org,skyostil@chromium.org BUG=699541,710095 Review-Url: https://codereview.chromium.org/2808843003 Cr-Commit-Position: refs/heads/master@{#470957} [modify] https://crrev.com/0f67a0c1b7f0e461114771b4297f5fc0a0202cee/third_party/WebKit/Source/platform/scheduler/base/task_queue.h [modify] https://crrev.com/0f67a0c1b7f0e461114771b4297f5fc0a0202cee/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc [modify] https://crrev.com/0f67a0c1b7f0e461114771b4297f5fc0a0202cee/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.h [modify] https://crrev.com/0f67a0c1b7f0e461114771b4297f5fc0a0202cee/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc [modify] https://crrev.com/0f67a0c1b7f0e461114771b4297f5fc0a0202cee/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc [modify] https://crrev.com/0f67a0c1b7f0e461114771b4297f5fc0a0202cee/third_party/WebKit/Source/platform/scheduler/base/time_domain.cc [modify] https://crrev.com/0f67a0c1b7f0e461114771b4297f5fc0a0202cee/third_party/WebKit/Source/platform/scheduler/base/time_domain.h [modify] https://crrev.com/0f67a0c1b7f0e461114771b4297f5fc0a0202cee/third_party/WebKit/Source/platform/scheduler/child/idle_helper.cc [modify] https://crrev.com/0f67a0c1b7f0e461114771b4297f5fc0a0202cee/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc [modify] https://crrev.com/0f67a0c1b7f0e461114771b4297f5fc0a0202cee/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc
I'm just curious but is there any update on the wakeup-based throttling?
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8a0aea1a5361dbc35f98bdfafcb22beb249072bb commit 8a0aea1a5361dbc35f98bdfafcb22beb249072bb Author: Alexander Timin <altimin@chromium.org> Date: Thu Nov 30 18:59:47 2017 [scheduler] Add finch config for wake-up throttling. R=skyostil@chromium.org BUG=699541 Change-Id: I8809b1f1486a6d92be56deaee7e135540cc0c03f Reviewed-on: https://chromium-review.googlesource.com/800639 Reviewed-by: Sami Kyöstilä <skyostil@chromium.org> Commit-Queue: Alexander Timin <altimin@chromium.org> Cr-Commit-Position: refs/heads/master@{#520627} [modify] https://crrev.com/8a0aea1a5361dbc35f98bdfafcb22beb249072bb/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f456c792cbd1d59d480eb725555d13fc233255b5 commit f456c792cbd1d59d480eb725555d13fc233255b5 Author: Alexander Timin <altimin@chromium.org> Date: Thu May 24 17:11:00 2018 [scheduler] Enable wake-up based throttling by default Enable wake-up based throttling by default with 3ms wake-up window. R=alexclarke@chromium.org BUG=699541 Change-Id: I9c8c273e43f812e1b296368cd227813c795d4d8d Reviewed-on: https://chromium-review.googlesource.com/1070142 Commit-Queue: Alexander Timin <altimin@chromium.org> Reviewed-by: Alex Clarke <alexclarke@chromium.org> Cr-Commit-Position: refs/heads/master@{#561535} [modify] https://crrev.com/f456c792cbd1d59d480eb725555d13fc233255b5/third_party/WebKit/LayoutTests/fast/dom/resources/timer-throttling-frame.html [modify] https://crrev.com/f456c792cbd1d59d480eb725555d13fc233255b5/third_party/blink/renderer/platform/scheduler/common/throttling/task_queue_throttler_unittest.cc [modify] https://crrev.com/f456c792cbd1d59d480eb725555d13fc233255b5/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc [modify] https://crrev.com/f456c792cbd1d59d480eb725555d13fc233255b5/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h [modify] https://crrev.com/f456c792cbd1d59d480eb725555d13fc233255b5/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl_unittest.cc
Comment 1 by bugdroid1@chromium.org
, Mar 9 2017