Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1183)

Issue 595023002: Implement idle task scheduling. (Closed)

Created:
6 years, 2 months ago by rmcilroy
Modified:
6 years, 2 months ago
CC:
aandrey+blink_chromium.org, abarth-chromium, blink-reviews, blink-reviews-wtf_chromium.org, Hannes Payer (out of office), Mikhail, mkwst+moarreviews_chromium.org
Project:
blink
Visibility:
Public.

Description

Implement idle task scheduling. Implements idle task scheduling in the Blink scheduler. These tasks are only scheduled after the compositor has committed a frame and have a deadline before the next frame is scheduled to begin. BUG=397026 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=183364

Patch Set 1 #

Total comments: 37

Patch Set 2 : Post idle tasks to the main thread run loop. #

Total comments: 5

Patch Set 3 : Change function names. #

Total comments: 3

Patch Set 4 : Avoid reposting idle tasks #

Total comments: 23

Patch Set 5 : Address Alex and Sami's comments #

Patch Set 6 : Fix comment #

Total comments: 14

Patch Set 7 : Address Jochen's comments #

Patch Set 8 : Fix whitespace #

Total comments: 2

Patch Set 9 : Rename estimatedNextBeginFrameSeconds #

Total comments: 2

Patch Set 10 : Move to OwnPtr #

Total comments: 2

Patch Set 11 : Add shutdown test. #

Patch Set 12 : Tweak comment #

Patch Set 13 : Fix Expect_EQ #

Unified diffs Side-by-side diffs Delta from patch set Stats (+265 lines, -77 lines) Patch
M Source/platform/scheduler/Scheduler.h View 1 2 3 4 5 6 7 8 9 10 6 chunks +28 lines, -7 lines 0 comments Download
M Source/platform/scheduler/Scheduler.cpp View 1 2 3 4 5 6 7 8 9 10 8 chunks +89 lines, -39 lines 0 comments Download
M Source/platform/scheduler/SchedulerTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +42 lines, -10 lines 0 comments Download
M Source/platform/scheduler/TracedTask.h View 1 2 3 4 5 6 7 8 9 2 chunks +35 lines, -6 lines 0 comments Download
M Source/platform/scheduler/TracedTask.cpp View 1 2 3 4 5 6 7 8 9 2 chunks +70 lines, -14 lines 0 comments Download
M Source/web/WebViewImpl.cpp View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 47 (9 generated)
rmcilroy
This isn't ready for review yet but I thought I'd send it to discuss how ...
6 years, 2 months ago (2014-09-24 08:49:18 UTC) #2
Sami
Thanks Ross, this is a great starting point. Let's figure out a way to mesh ...
6 years, 2 months ago (2014-09-24 14:00:40 UTC) #4
picksi1
Some comments! https://codereview.chromium.org/595023002/diff/1/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/1/Source/platform/scheduler/Scheduler.cpp#newcode273 Source/platform/scheduler/Scheduler.cpp:273: } I wonder if the added complexity ...
6 years, 2 months ago (2014-09-25 08:53:31 UTC) #5
rmcilroy
Updated to post idle tasks to the main thread run loop. PTAL, thanks. https://codereview.chromium.org/595023002/diff/1/Source/platform/scheduler/Scheduler.cpp File ...
6 years, 2 months ago (2014-09-29 17:42:58 UTC) #6
picksi1
Thanks! I've made a couple of comments about function names (my favourite subject!), https://codereview.chromium.org/595023002/diff/1/Source/wtf/DoubleBufferedDeque.h File ...
6 years, 2 months ago (2014-09-30 09:13:51 UTC) #7
rmcilroy
https://codereview.chromium.org/595023002/diff/1/Source/wtf/DoubleBufferedDeque.h File Source/wtf/DoubleBufferedDeque.h (right): https://codereview.chromium.org/595023002/diff/1/Source/wtf/DoubleBufferedDeque.h#newcode25 Source/wtf/DoubleBufferedDeque.h:25: On 2014/09/30 09:13:51, picksi1 wrote: > My changes felt ...
6 years, 2 months ago (2014-09-30 09:56:19 UTC) #8
picksi1
https://codereview.chromium.org/595023002/diff/20001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/20001/Source/platform/scheduler/Scheduler.cpp#newcode302 Source/platform/scheduler/Scheduler.cpp:302: } maybePostMainThreadPendingHighPriorityTaskRunner() is a mouthful but is clear as ...
6 years, 2 months ago (2014-09-30 12:34:00 UTC) #9
alexclarke
https://codereview.chromium.org/595023002/diff/40001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/40001/Source/platform/scheduler/Scheduler.cpp#newcode100 Source/platform/scheduler/Scheduler.cpp:100: scheduler->repostIdleTaskAtFront(m_idleTask); It seems complex to pop and then repost ...
6 years, 2 months ago (2014-09-30 15:47:51 UTC) #11
Sami
https://codereview.chromium.org/595023002/diff/40001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/40001/Source/platform/scheduler/Scheduler.cpp#newcode100 Source/platform/scheduler/Scheduler.cpp:100: scheduler->repostIdleTaskAtFront(m_idleTask); On 2014/09/30 15:47:51, alexclarke wrote: > It seems ...
6 years, 2 months ago (2014-09-30 16:14:48 UTC) #12
rmcilroy
+Jochen, could you review for Platform owners please. https://codereview.chromium.org/595023002/diff/40001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/40001/Source/platform/scheduler/Scheduler.cpp#newcode100 Source/platform/scheduler/Scheduler.cpp:100: scheduler->repostIdleTaskAtFront(m_idleTask); ...
6 years, 2 months ago (2014-10-03 09:40:24 UTC) #14
alexclarke
https://codereview.chromium.org/595023002/diff/60001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/60001/Source/platform/scheduler/Scheduler.cpp#newcode211 Source/platform/scheduler/Scheduler.cpp:211: if (canRunIdleTask()) { Which threads will this function get ...
6 years, 2 months ago (2014-10-03 09:59:19 UTC) #15
Sami
https://codereview.chromium.org/595023002/diff/60001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/60001/Source/platform/scheduler/Scheduler.cpp#newcode211 Source/platform/scheduler/Scheduler.cpp:211: if (canRunIdleTask()) { On 2014/10/03 09:59:19, alexclarke wrote: > ...
6 years, 2 months ago (2014-10-03 10:39:22 UTC) #16
rmcilroy
https://codereview.chromium.org/595023002/diff/60001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/60001/Source/platform/scheduler/Scheduler.cpp#newcode211 Source/platform/scheduler/Scheduler.cpp:211: if (canRunIdleTask()) { On 2014/10/03 10:39:21, Sami wrote: > ...
6 years, 2 months ago (2014-10-03 21:41:21 UTC) #17
jochen (gone - plz use gerrit)
https://codereview.chromium.org/595023002/diff/100001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/100001/Source/platform/scheduler/Scheduler.cpp#newcode92 Source/platform/scheduler/Scheduler.cpp:92: scheduler->runPendingHighPriorityTasksIfInCompositorPriority(); if we're in compositor priority, why run an ...
6 years, 2 months ago (2014-10-06 07:33:19 UTC) #18
Sami
https://codereview.chromium.org/595023002/diff/100001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/100001/Source/platform/scheduler/Scheduler.cpp#newcode92 Source/platform/scheduler/Scheduler.cpp:92: scheduler->runPendingHighPriorityTasksIfInCompositorPriority(); On 2014/10/06 07:33:19, jochen wrote: > if we're ...
6 years, 2 months ago (2014-10-06 09:48:30 UTC) #19
rmcilroy
https://codereview.chromium.org/595023002/diff/100001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/100001/Source/platform/scheduler/Scheduler.cpp#newcode92 Source/platform/scheduler/Scheduler.cpp:92: scheduler->runPendingHighPriorityTasksIfInCompositorPriority(); On 2014/10/06 09:48:30, Sami wrote: > On 2014/10/06 ...
6 years, 2 months ago (2014-10-06 11:29:42 UTC) #20
alexclarke
https://codereview.chromium.org/595023002/diff/100001/Source/platform/scheduler/TracedTask.h File Source/platform/scheduler/TracedTask.h (right): https://codereview.chromium.org/595023002/diff/100001/Source/platform/scheduler/TracedTask.h#newcode23 Source/platform/scheduler/TracedTask.h:23: public: On 2014/10/06 11:29:42, rmcilroy wrote: > On 2014/10/06 ...
6 years, 2 months ago (2014-10-06 11:36:11 UTC) #21
Sami
On 2014/10/06 11:36:11, alexclarke wrote: > https://codereview.chromium.org/595023002/diff/100001/Source/platform/scheduler/TracedTask.h > File Source/platform/scheduler/TracedTask.h (right): > > https://codereview.chromium.org/595023002/diff/100001/Source/platform/scheduler/TracedTask.h#newcode23 > ...
6 years, 2 months ago (2014-10-06 11:44:55 UTC) #22
rmcilroy
On 2014/10/06 11:44:55, Sami wrote: > On 2014/10/06 11:36:11, alexclarke wrote: > > > https://codereview.chromium.org/595023002/diff/100001/Source/platform/scheduler/TracedTask.h ...
6 years, 2 months ago (2014-10-06 13:44:27 UTC) #23
Sami
/me complaining about names again. https://codereview.chromium.org/595023002/diff/140001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/140001/Source/platform/scheduler/Scheduler.cpp#newcode137 Source/platform/scheduler/Scheduler.cpp:137: void Scheduler::willBeginFrame(double frameDeadlineSeconds) Please ...
6 years, 2 months ago (2014-10-06 13:49:42 UTC) #24
rmcilroy
https://codereview.chromium.org/595023002/diff/140001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/140001/Source/platform/scheduler/Scheduler.cpp#newcode137 Source/platform/scheduler/Scheduler.cpp:137: void Scheduler::willBeginFrame(double frameDeadlineSeconds) On 2014/10/06 13:49:42, Sami wrote: > ...
6 years, 2 months ago (2014-10-06 14:16:26 UTC) #25
rmcilroy
6 years, 2 months ago (2014-10-06 14:31:55 UTC) #26
Sami
Great, LGTM!
6 years, 2 months ago (2014-10-06 14:47:29 UTC) #27
rmcilroy
+hpayer Any more comments Jochen?
6 years, 2 months ago (2014-10-07 09:52:09 UTC) #28
jochen (gone - plz use gerrit)
I'd rather not have friends. The tasks should have a static PassOwnPtr<FooTask> Create() method. OwnPtr ...
6 years, 2 months ago (2014-10-07 11:20:26 UTC) #29
jochen (gone - plz use gerrit)
https://codereview.chromium.org/595023002/diff/160001/Source/web/WebViewImpl.cpp File Source/web/WebViewImpl.cpp (right): https://codereview.chromium.org/595023002/diff/160001/Source/web/WebViewImpl.cpp#newcode1821 Source/web/WebViewImpl.cpp:1821: Scheduler::shared()->willBeginFrame( nit. no 80 char limit in blink
6 years, 2 months ago (2014-10-07 11:20:38 UTC) #30
rmcilroy
> I'd rather not have friends. > > > The tasks should have a static ...
6 years, 2 months ago (2014-10-07 13:05:04 UTC) #31
rmcilroy
Also synced to pick up Sami's most recent changes.
6 years, 2 months ago (2014-10-07 13:06:19 UTC) #32
Sami
Thanks Ross. https://codereview.chromium.org/595023002/diff/180001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/180001/Source/platform/scheduler/Scheduler.cpp#newcode88 Source/platform/scheduler/Scheduler.cpp:88: // FIXME: This check shouldn't be necessary, ...
6 years, 2 months ago (2014-10-07 14:17:34 UTC) #33
jochen (gone - plz use gerrit)
lgtm, thanks
6 years, 2 months ago (2014-10-07 14:22:10 UTC) #34
rmcilroy
https://codereview.chromium.org/595023002/diff/180001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/595023002/diff/180001/Source/platform/scheduler/Scheduler.cpp#newcode88 Source/platform/scheduler/Scheduler.cpp:88: // FIXME: This check shouldn't be necessary, tasks should ...
6 years, 2 months ago (2014-10-07 15:37:51 UTC) #35
Sami
Thanks for adding the test. LGTM!
6 years, 2 months ago (2014-10-07 15:38:43 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/595023002/220001
6 years, 2 months ago (2014-10-07 15:41:31 UTC) #38
commit-bot: I haz the power
Try jobs failed on following builders: android_chromium_gn_compile_rel on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/android_chromium_gn_compile_rel/builds/12905)
6 years, 2 months ago (2014-10-07 15:54:03 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/595023002/240001
6 years, 2 months ago (2014-10-07 16:36:03 UTC) #42
commit-bot: I haz the power
Try jobs failed on following builders: linux_blink_rel on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/28135) mac_blink_rel on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/mac_blink_rel/builds/26145)
6 years, 2 months ago (2014-10-07 19:22:11 UTC) #44
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/595023002/240001
6 years, 2 months ago (2014-10-07 21:30:56 UTC) #46
commit-bot: I haz the power
6 years, 2 months ago (2014-10-07 23:12:55 UTC) #47
Message was sent while issue was closed.
Committed patchset #13 (id:240001) as 183364

Powered by Google App Engine
This is Rietveld 408576698