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

Issue 439923006: Prioritizing input and compositor tasks in the blink scheduler. (Closed)

Created:
6 years, 4 months ago by alex clarke (OOO till 29th)
Modified:
6 years, 4 months ago
CC:
abarth-chromium, blink-reviews, blink-reviews-wtf_chromium.org, Mikhail
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Project:
blink
Visibility:
Public.

Description

Prioritizing input and compositor tasks in the blink scheduler. Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=180171

Patch Set 1 #

Total comments: 20

Patch Set 2 : Responding to feedback, and removing atomics #

Patch Set 3 : Added a couple of tests. #

Patch Set 4 : Un deleted something I didn't intend to delete #

Total comments: 15

Patch Set 5 : changed runPendingTasks to only run low prioritty task at a time #

Patch Set 6 : Responding to more feedback #

Patch Set 7 : made runPendingTasks private #

Total comments: 17

Patch Set 8 : Respoding to more feedback #

Total comments: 14

Patch Set 9 : Responding to Eric's comments. #

Patch Set 10 : change to pacify clang #

Total comments: 27

Patch Set 11 : Responding to Sami's comments #

Total comments: 28

Patch Set 12 : Rebase + respond to Eric's feedback #

Total comments: 2

Patch Set 13 : moving DoubleBufferedDeque #

Patch Set 14 : Removing unwanted change #

Patch Set 15 : Adding wtf/DoubleBufferedDeque.h to git #

Total comments: 22

Patch Set 16 : Responding to the latest round of comments. #

Patch Set 17 : Fixed a couple of issues. #

Patch Set 18 : Removing a couple of tests that fail due to the assert we added. #

Total comments: 16

Patch Set 19 : Responded to Sami's comments #

Patch Set 20 : Removed a couple of changes I didn't intend to be in this patch. #

Total comments: 4

Patch Set 21 : Responding to Sami's feedback #

Total comments: 10

Patch Set 22 : Responding to Eric's feedback #

Total comments: 4

Patch Set 23 : Small chanegs for Sami #

Patch Set 24 : Couple of tweaks for Sami #

Patch Set 25 : Adding a missing #include #

Unified diffs Side-by-side diffs Delta from patch set Stats (+362 lines, -57 lines) Patch
M Source/platform/scheduler/Scheduler.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 4 chunks +39 lines, -8 lines 0 comments Download
M Source/platform/scheduler/Scheduler.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 3 chunks +128 lines, -37 lines 0 comments Download
M Source/platform/scheduler/SchedulerTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 6 chunks +93 lines, -12 lines 0 comments Download
A Source/wtf/DoubleBufferedDeque.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +47 lines, -0 lines 0 comments Download
A Source/wtf/DoubleBufferedDequeTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +53 lines, -0 lines 0 comments Download
M Source/wtf/wtf.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +2 lines, -0 lines 0 comments Download

Messages

Total messages: 48 (0 generated)
Sami
Thanks Alex, I think this looks great. I left some nit picks, but mainly I ...
6 years, 4 months ago (2014-08-06 10:19:53 UTC) #1
Sami
6 years, 4 months ago (2014-08-06 16:07:01 UTC) #2
alexclarke
https://codereview.chromium.org/439923006/diff/1/Source/platform/scheduler/AtomicRingbuffer.h File Source/platform/scheduler/AtomicRingbuffer.h (right): https://codereview.chromium.org/439923006/diff/1/Source/platform/scheduler/AtomicRingbuffer.h#newcode17 Source/platform/scheduler/AtomicRingbuffer.h:17: AtomicRingBuffer() : m_writeCounter(0), m_readIndex(1) On 2014/08/06 10:19:52, Sami wrote: ...
6 years, 4 months ago (2014-08-07 12:08:06 UTC) #3
Sami
https://codereview.chromium.org/439923006/diff/60001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/60001/Source/platform/scheduler/Scheduler.cpp#newcode64 Source/platform/scheduler/Scheduler.cpp:64: WeakPtr<MainThreadPendingTaskRunner> MainThreadPendingTaskRunner::s_taskInFlight; I think we need to avoid non-POD ...
6 years, 4 months ago (2014-08-07 14:24:45 UTC) #4
alexclarke
https://codereview.chromium.org/439923006/diff/60001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/60001/Source/platform/scheduler/Scheduler.cpp#newcode64 Source/platform/scheduler/Scheduler.cpp:64: WeakPtr<MainThreadPendingTaskRunner> MainThreadPendingTaskRunner::s_taskInFlight; On 2014/08/07 14:24:45, Sami wrote: > I ...
6 years, 4 months ago (2014-08-07 15:15:29 UTC) #5
Sami
Nice, getting close :) https://codereview.chromium.org/439923006/diff/120001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/120001/Source/platform/scheduler/Scheduler.cpp#newcode57 Source/platform/scheduler/Scheduler.cpp:57: Scheduler::shared()->runPendingTasks(); It would be slightly ...
6 years, 4 months ago (2014-08-07 15:51:27 UTC) #6
alexclarke
https://codereview.chromium.org/439923006/diff/120001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/120001/Source/platform/scheduler/Scheduler.cpp#newcode57 Source/platform/scheduler/Scheduler.cpp:57: Scheduler::shared()->runPendingTasks(); On 2014/08/07 15:51:26, Sami wrote: > It would ...
6 years, 4 months ago (2014-08-07 16:01:30 UTC) #7
eseidel
If this is only a main-task scheduler, why do we need any locks at all? ...
6 years, 4 months ago (2014-08-07 17:18:15 UTC) #8
Sami
https://codereview.chromium.org/439923006/diff/140001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/140001/Source/platform/scheduler/Scheduler.cpp#newcode23 Source/platform/scheduler/Scheduler.cpp:23: , m_allottedTimeMs(allottedTimeMs) On 2014/08/07 17:18:15, eseidel wrote: > Thank ...
6 years, 4 months ago (2014-08-07 18:22:22 UTC) #9
Sami
https://codereview.chromium.org/439923006/diff/140001/Source/platform/scheduler/Scheduler.h File Source/platform/scheduler/Scheduler.h (right): https://codereview.chromium.org/439923006/diff/140001/Source/platform/scheduler/Scheduler.h#newcode101 Source/platform/scheduler/Scheduler.h:101: volatile int m_mainThreadTaskRunnerCount; On 2014/08/07 17:18:15, eseidel wrote: > ...
6 years, 4 months ago (2014-08-07 18:23:59 UTC) #10
Sami
Sorry for missing your top-level question: On 2014/08/07 17:18:15, eseidel wrote: > If this is ...
6 years, 4 months ago (2014-08-07 18:26:33 UTC) #11
eseidel
But we could keep the scheduler lock-less and just have callOnMainThread handle the locking, no?
6 years, 4 months ago (2014-08-07 21:47:04 UTC) #12
Sami
On 2014/08/07 21:47:04, eseidel wrote: > But we could keep the scheduler lock-less and just ...
6 years, 4 months ago (2014-08-08 09:51:33 UTC) #13
alexclarke
https://codereview.chromium.org/439923006/diff/140001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/140001/Source/platform/scheduler/Scheduler.cpp#newcode23 Source/platform/scheduler/Scheduler.cpp:23: , m_allottedTimeMs(allottedTimeMs) On 2014/08/07 17:18:15, eseidel wrote: > Thank ...
6 years, 4 months ago (2014-08-08 13:32:23 UTC) #14
Sami
I think this is starting to converge. https://codereview.chromium.org/439923006/diff/140001/Source/platform/scheduler/Scheduler.h File Source/platform/scheduler/Scheduler.h (right): https://codereview.chromium.org/439923006/diff/140001/Source/platform/scheduler/Scheduler.h#newcode67 Source/platform/scheduler/Scheduler.h:67: class TracedTask ...
6 years, 4 months ago (2014-08-08 15:31:14 UTC) #15
abarth-chromium
This CL really looks like a re-implementation of base::MessageLoop. Should we write the code in ...
6 years, 4 months ago (2014-08-08 15:43:13 UTC) #16
alexclarke
https://codereview.chromium.org/439923006/diff/180001/Source/platform/scheduler/DoubleBufferedDeque.h File Source/platform/scheduler/DoubleBufferedDeque.h (right): https://codereview.chromium.org/439923006/diff/180001/Source/platform/scheduler/DoubleBufferedDeque.h#newcode30 Source/platform/scheduler/DoubleBufferedDeque.h:30: Locker<Mutex> lock(m_mutex); On 2014/08/08 15:31:13, Sami wrote: > Let's ...
6 years, 4 months ago (2014-08-08 15:47:46 UTC) #17
Sami
On 2014/08/08 15:43:13, abarth wrote: > This CL really looks like a re-implementation of base::MessageLoop. ...
6 years, 4 months ago (2014-08-08 15:58:03 UTC) #18
eseidel
https://codereview.chromium.org/439923006/diff/200001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/200001/Source/platform/scheduler/Scheduler.cpp#newcode35 Source/platform/scheduler/Scheduler.cpp:35: Scheduler::IdleTask m_idleTask; Why are idle tasks different from tasks? ...
6 years, 4 months ago (2014-08-08 17:31:07 UTC) #19
eseidel
There was a different approach to teh scheduilng wheel which did extend base instead: https://docs.google.com/document/d/1SWpjgtwIaL_hIcbm6uGJKZ8o8R9xYre-yG0VDOjFBxU/edit ...
6 years, 4 months ago (2014-08-08 17:33:00 UTC) #20
abarth-chromium
Ok. Thanks for considering that option.
6 years, 4 months ago (2014-08-08 17:58:16 UTC) #21
eseidel
Lets walk through this at/after our meeting today so we can finally get this landed. ...
6 years, 4 months ago (2014-08-11 15:19:14 UTC) #22
eseidel
Notes while we were talking. https://codereview.chromium.org/439923006/diff/280001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (left): https://codereview.chromium.org/439923006/diff/280001/Source/platform/scheduler/Scheduler.cpp#oldcode23 Source/platform/scheduler/Scheduler.cpp:23: { If this can't ...
6 years, 4 months ago (2014-08-11 17:02:37 UTC) #23
alexclarke
https://codereview.chromium.org/439923006/diff/200001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/200001/Source/platform/scheduler/Scheduler.cpp#newcode35 Source/platform/scheduler/Scheduler.cpp:35: Scheduler::IdleTask m_idleTask; On 2014/08/08 17:31:06, eseidel wrote: > Why ...
6 years, 4 months ago (2014-08-12 11:37:03 UTC) #24
Sami
https://codereview.chromium.org/439923006/diff/310007/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/310007/Source/platform/scheduler/Scheduler.cpp#newcode58 Source/platform/scheduler/Scheduler.cpp:58: Scheduler* scheduler = Scheduler::shared(); Looks like the destructor should ...
6 years, 4 months ago (2014-08-12 13:03:00 UTC) #25
alexclarke
https://codereview.chromium.org/439923006/diff/310007/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/310007/Source/platform/scheduler/Scheduler.cpp#newcode58 Source/platform/scheduler/Scheduler.cpp:58: Scheduler* scheduler = Scheduler::shared(); On 2014/08/12 13:02:59, Sami wrote: ...
6 years, 4 months ago (2014-08-12 13:59:28 UTC) #26
Sami
Thanks Alex, I say lgtm with two tiny nits :) https://codereview.chromium.org/439923006/diff/370001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/370001/Source/platform/scheduler/Scheduler.cpp#newcode190 ...
6 years, 4 months ago (2014-08-12 15:05:31 UTC) #27
alexclarke
https://codereview.chromium.org/439923006/diff/370001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/370001/Source/platform/scheduler/Scheduler.cpp#newcode190 Source/platform/scheduler/Scheduler.cpp:190: ASSERT(m_highPriorityTaskCount >= 0); On 2014/08/12 15:05:31, Sami wrote: > ...
6 years, 4 months ago (2014-08-12 15:21:38 UTC) #28
eseidel
OK, well you have my blessing. When sami is satisfied, land away. lgtm. https://codereview.chromium.org/439923006/diff/390001/Source/platform/scheduler/Scheduler.cpp File ...
6 years, 4 months ago (2014-08-12 16:16:01 UTC) #29
alexclarke
https://codereview.chromium.org/439923006/diff/390001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/390001/Source/platform/scheduler/Scheduler.cpp#newcode59 Source/platform/scheduler/Scheduler.cpp:59: Scheduler* scheduler = Scheduler::shared(); On 2014/08/12 16:16:01, eseidel wrote: ...
6 years, 4 months ago (2014-08-13 10:08:59 UTC) #30
Sami
Still lgtm. Just two minor comments. https://codereview.chromium.org/439923006/diff/410001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/410001/Source/platform/scheduler/Scheduler.cpp#newcode60 Source/platform/scheduler/Scheduler.cpp:60: // FIXME: This ...
6 years, 4 months ago (2014-08-13 10:28:43 UTC) #31
alexclarke
https://codereview.chromium.org/439923006/diff/410001/Source/platform/scheduler/Scheduler.cpp File Source/platform/scheduler/Scheduler.cpp (right): https://codereview.chromium.org/439923006/diff/410001/Source/platform/scheduler/Scheduler.cpp#newcode60 Source/platform/scheduler/Scheduler.cpp:60: // FIXME: This check should't be necessary, tasks should ...
6 years, 4 months ago (2014-08-13 10:35:03 UTC) #32
alexclarke
The CQ bit was checked by alexclarke@google.com
6 years, 4 months ago (2014-08-13 10:35:14 UTC) #33
alexclarke
The CQ bit was unchecked by alexclarke@google.com
6 years, 4 months ago (2014-08-13 10:35:25 UTC) #34
alexclarke
The CQ bit was checked by alexclarke@google.com
6 years, 4 months ago (2014-08-13 10:35:28 UTC) #35
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/alexclarke@chromium.org/439923006/450001
6 years, 4 months ago (2014-08-13 10:36:26 UTC) #36
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: linux_blink_dbg on tryserver.blink ...
6 years, 4 months ago (2014-08-13 11:12:04 UTC) #37
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-08-13 11:16:10 UTC) #38
commit-bot: I haz the power
Try jobs failed on following builders: mac_blink_compile_dbg on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/mac_blink_compile_dbg/builds/16102)
6 years, 4 months ago (2014-08-13 11:16:11 UTC) #39
alexclarke
The CQ bit was checked by alexclarke@google.com
6 years, 4 months ago (2014-08-13 11:24:30 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/alexclarke@chromium.org/439923006/470001
6 years, 4 months ago (2014-08-13 11:25:51 UTC) #41
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: linux_chromium_gn_rel on tryserver.blink ...
6 years, 4 months ago (2014-08-13 13:09:57 UTC) #42
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 4 months ago (2014-08-13 13:13:25 UTC) #43
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_gn_rel on tryserver.blink (http://build.chromium.org/p/tryserver.blink/builders/linux_chromium_gn_rel/builds/7323)
6 years, 4 months ago (2014-08-13 13:13:27 UTC) #44
alexclarke
The CQ bit was checked by alexclarke@google.com
6 years, 4 months ago (2014-08-13 13:23:38 UTC) #45
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/alexclarke@chromium.org/439923006/470001
6 years, 4 months ago (2014-08-13 13:24:05 UTC) #46
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: linux_chromium_gn_rel on tryserver.blink ...
6 years, 4 months ago (2014-08-13 13:28:06 UTC) #47
commit-bot: I haz the power
6 years, 4 months ago (2014-08-13 13:37:10 UTC) #48
Message was sent while issue was closed.
Committed patchset #25 (470001) as 180171

Powered by Google App Engine
This is Rietveld 408576698