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

Issue 699541 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 710095
issue 799891


Show other hotlists

Hotlists containing this issue:
TaskThrottling


Sign in to add a comment

Wakeup-based budget throttling

Project Member Reported by altimin@chromium.org, Mar 8 2017

Issue description

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
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 9 2017

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

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 21 2017

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

Project Member

Comment 5 by bugdroid1@chromium.org, Mar 28 2017

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

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 3 2017

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

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 5 2017

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

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 10 2017

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

Blockedon: 710095
Project Member

Comment 10 by bugdroid1@chromium.org, Apr 11 2017

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

Project Member

Comment 11 by bugdroid1@chromium.org, May 5 2017

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

Project Member

Comment 12 by bugdroid1@chromium.org, May 11 2017

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?

Project Member

Comment 14 by bugdroid1@chromium.org, Nov 30 2017

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

Blockedon: 799891
Project Member

Comment 16 by bugdroid1@chromium.org, May 24 2018

Sign in to add a comment