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

Issue 1706123002: TaskScheduler [2/9] Scheduler Lock (Closed)

Created:
4 years, 10 months ago by robliao
Modified:
4 years, 9 months ago
Reviewers:
danakj, gab, fdoray
CC:
chromium-reviews, vmpstr+watch_chromium.org, jam, brettw, Nico
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

TaskScheduler [2/9] Scheduler Lock The task scheduler lock helps ensure correctness of locks by verifying that we cannot create lock cycles and checking to make sure that the locks acquired match the locks expected to be acquired in DCHECK_IS_ON() builds. The implementation will DCHECK if an unexpected lock is acquired. When DCHECK_IS_ON() is not set, SchedulerLock is a regular lock. This change is a subset of https://codereview.chromium.org/1698183005/ BUG=553459 Committed: https://crrev.com/b6f61ce5c35e985cf07279ea25fd846b0b9d6f9d Cr-Commit-Position: refs/heads/master@{#381075}

Patch Set 1 #

Total comments: 33

Patch Set 2 : CR Feedback #

Total comments: 41

Patch Set 3 : CR Feedback #

Total comments: 4

Patch Set 4 : Thread Local Acquired Lock Vector and CR Feedback #

Total comments: 27

Patch Set 5 : CR Feedback #

Patch Set 6 : thread_local -> thread_local_storage ( Bug http://crbug.com/588824) #

Total comments: 4

Patch Set 7 : Nits #

Patch Set 8 : Standardize Tests on SimpleThread #

Total comments: 12

Patch Set 9 : CR Feedback #

Patch Set 10 : Check GTEST_HAS_DEATH_TEST and Disable Death Tests on Android #

Total comments: 10

Patch Set 11 : Move most DCHECKs to DCHECK_(EQ|NE) #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+583 lines, -0 lines) Patch
M base/BUILD.gn View 2 chunks +4 lines, -0 lines 0 comments Download
M base/base.gyp View 1 chunk +1 line, -0 lines 0 comments Download
M base/base.gypi View 1 chunk +3 lines, -0 lines 0 comments Download
A base/task_scheduler/scheduler_lock.h View 1 2 3 4 1 chunk +87 lines, -0 lines 0 comments Download
A base/task_scheduler/scheduler_lock_impl.h View 1 2 3 1 chunk +45 lines, -0 lines 0 comments Download
A base/task_scheduler/scheduler_lock_impl.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +144 lines, -0 lines 1 comment Download
A base/task_scheduler/scheduler_lock_unittest.cc View 1 2 3 4 5 6 7 8 9 1 chunk +299 lines, -0 lines 0 comments Download

Depends on Patchset:

Dependent Patchsets:

Messages

Total messages: 97 (36 generated)
robliao
4 years, 10 months ago (2016-02-18 03:29:01 UTC) #3
gab
Was this change uploaded from s_1_scheduler_lock with s_0_task_traits as upstream? Feels that's what we should ...
4 years, 10 months ago (2016-02-18 13:24:17 UTC) #5
gab
On 2016/02/18 13:24:17, gab wrote: > Was this change uploaded from s_1_scheduler_lock with s_0_task_traits as ...
4 years, 10 months ago (2016-02-18 15:56:46 UTC) #6
gab
On 2016/02/18 15:56:46, gab wrote: > On 2016/02/18 13:24:17, gab wrote: > > Was this ...
4 years, 10 months ago (2016-02-18 16:06:00 UTC) #7
gab
On 2016/02/18 16:06:00, gab wrote: > On 2016/02/18 15:56:46, gab wrote: > > On 2016/02/18 ...
4 years, 10 months ago (2016-02-18 16:08:46 UTC) #8
gab
Running to a series a meeting, here's a first pass, looked at everything but the ...
4 years, 10 months ago (2016-02-18 16:58:07 UTC) #10
robliao
Thanks for the comments! > Was this change uploaded from s_1_scheduler_lock with s_0_task_traits as upstream? ...
4 years, 10 months ago (2016-02-18 21:59:37 UTC) #15
gab
On 2016/02/18 21:59:37, robliao wrote: > Thanks for the comments! > > > Was this ...
4 years, 10 months ago (2016-02-19 16:08:04 UTC) #17
robliao
https://codereview.chromium.org/1706123002/diff/100001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/100001/base/task_scheduler/scheduler_lock_impl.cc#newcode80 base/task_scheduler/scheduler_lock_impl.cc:80: allowed_predecessor_map.at(lock); On 2016/02/19 16:08:03, gab wrote: > at() throws ...
4 years, 10 months ago (2016-02-19 21:25:07 UTC) #18
gab
lgtm % TLS ping and nits (feel free to send it to OWNERS by EOD ...
4 years, 10 months ago (2016-02-19 22:05:24 UTC) #19
robliao
It would be nice if there were resolved/unresolved bits for the comments! https://codereview.chromium.org/1706123002/diff/1/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc ...
4 years, 10 months ago (2016-02-19 23:51:12 UTC) #21
fdoray
lgtm with 2 nits https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock.h File base/task_scheduler/scheduler_lock.h (right): https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock.h#newcode8 base/task_scheduler/scheduler_lock.h:8: #include <vector> not needed here ...
4 years, 10 months ago (2016-02-22 16:45:21 UTC) #22
gab
https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc#newcode42 base/task_scheduler/scheduler_lock_impl.cc:42: AutoLock auto_lock(metadata_lock_); Move AutoLock into AssertSafeAcquire (on the line ...
4 years, 10 months ago (2016-02-22 16:54:12 UTC) #23
robliao
https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock.h File base/task_scheduler/scheduler_lock.h (right): https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock.h#newcode8 base/task_scheduler/scheduler_lock.h:8: #include <vector> On 2016/02/22 16:45:21, fdoray wrote: > not ...
4 years, 10 months ago (2016-02-22 18:38:09 UTC) #24
gab
https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc#newcode53 base/task_scheduler/scheduler_lock_impl.cc:53: LockVector* acquired_locks = tls_acquired_locks_.Get(); On 2016/02/22 18:38:09, robliao wrote: ...
4 years, 10 months ago (2016-02-22 19:56:47 UTC) #25
robliao
https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc#newcode53 base/task_scheduler/scheduler_lock_impl.cc:53: LockVector* acquired_locks = tls_acquired_locks_.Get(); On 2016/02/22 19:56:47, gab wrote: ...
4 years, 10 months ago (2016-02-22 20:22:51 UTC) #26
gab
https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc#newcode53 base/task_scheduler/scheduler_lock_impl.cc:53: LockVector* acquired_locks = tls_acquired_locks_.Get(); On 2016/02/22 20:22:51, robliao wrote: ...
4 years, 10 months ago (2016-02-22 20:36:32 UTC) #27
robliao
https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc#newcode60 base/task_scheduler/scheduler_lock_impl.cc:60: delete acquired_locks; On 2016/02/22 20:22:51, robliao wrote: > On ...
4 years, 10 months ago (2016-02-22 20:37:34 UTC) #28
robliao
https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/180001/base/task_scheduler/scheduler_lock_impl.cc#newcode53 base/task_scheduler/scheduler_lock_impl.cc:53: LockVector* acquired_locks = tls_acquired_locks_.Get(); On 2016/02/22 20:36:31, gab wrote: ...
4 years, 10 months ago (2016-02-22 21:21:03 UTC) #32
gab
lgtm % nits, thanks! https://codereview.chromium.org/1706123002/diff/280001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/280001/base/task_scheduler/scheduler_lock_impl.cc#newcode24 base/task_scheduler/scheduler_lock_impl.cc:24: SafeAcquisitionTracker() : tls_acquired_locks_(DestroyLockVector) {} Shouldn't ...
4 years, 10 months ago (2016-02-22 21:52:10 UTC) #33
robliao
https://codereview.chromium.org/1706123002/diff/280001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/280001/base/task_scheduler/scheduler_lock_impl.cc#newcode24 base/task_scheduler/scheduler_lock_impl.cc:24: SafeAcquisitionTracker() : tls_acquired_locks_(DestroyLockVector) {} On 2016/02/22 21:52:10, gab wrote: ...
4 years, 10 months ago (2016-02-22 22:31:27 UTC) #34
robliao
jam: Please review this CL. Thanks!
4 years, 10 months ago (2016-02-22 22:31:49 UTC) #36
jam
+brettw as well for his thoughts (original base owner, and familiar with this work). btw ...
4 years, 10 months ago (2016-02-22 23:33:16 UTC) #38
robliao
On 2016/02/22 23:33:16, jam wrote: > +brettw as well for his thoughts (original base owner, ...
4 years, 10 months ago (2016-02-22 23:49:17 UTC) #39
gab
On 2016/02/22 23:33:16, jam wrote: > +brettw as well for his thoughts (original base owner, ...
4 years, 10 months ago (2016-02-22 23:51:51 UTC) #40
jam
On 2016/02/22 23:51:51, gab wrote: > On 2016/02/22 23:33:16, jam wrote: > > +brettw as ...
4 years, 10 months ago (2016-02-22 23:59:13 UTC) #41
gab
+Nico who will be our base reviewer for these 8 CLs. @Nico see discussion below. ...
4 years, 10 months ago (2016-02-23 01:16:26 UTC) #43
robliao
On 2016/02/23 01:16:26, gab wrote: > +Nico who will be our base reviewer for these ...
4 years, 9 months ago (2016-02-25 18:02:27 UTC) #44
gab
+Dana, as just discussed :-), thanks! On 2016/02/25 18:02:27, robliao wrote: > On 2016/02/23 01:16:26, ...
4 years, 9 months ago (2016-03-03 00:38:57 UTC) #46
robliao
On 2016/03/03 00:38:57, gab wrote: > +Dana, as just discussed :-), thanks! > > On ...
4 years, 9 months ago (2016-03-07 19:20:37 UTC) #48
danakj
LG overall thanks for all the tests. Few comments. https://codereview.chromium.org/1706123002/diff/320001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/320001/base/task_scheduler/scheduler_lock_impl.cc#newcode82 base/task_scheduler/scheduler_lock_impl.cc:82: ...
4 years, 9 months ago (2016-03-08 21:22:56 UTC) #49
danakj
https://codereview.chromium.org/1706123002/diff/320001/base/task_scheduler/scheduler_lock_unittest.cc File base/task_scheduler/scheduler_lock_unittest.cc (right): https://codereview.chromium.org/1706123002/diff/320001/base/task_scheduler/scheduler_lock_unittest.cc#newcode19 base/task_scheduler/scheduler_lock_unittest.cc:19: Oh, can you wrap the whole test file in ...
4 years, 9 months ago (2016-03-08 21:24:50 UTC) #50
robliao
Thanks for the review! New patchset uploaded. https://codereview.chromium.org/1706123002/diff/320001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/320001/base/task_scheduler/scheduler_lock_impl.cc#newcode82 base/task_scheduler/scheduler_lock_impl.cc:82: if (predecessor ...
4 years, 9 months ago (2016-03-08 22:14:08 UTC) #51
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1706123002/340001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1706123002/340001
4 years, 9 months ago (2016-03-09 02:41:35 UTC) #53
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: ios_dbg_simulator_ninja on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_dbg_simulator_ninja/builds/142205)
4 years, 9 months ago (2016-03-09 03:09:11 UTC) #55
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1706123002/360001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1706123002/360001
4 years, 9 months ago (2016-03-09 15:35:54 UTC) #57
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1706123002/380001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1706123002/380001
4 years, 9 months ago (2016-03-09 15:50:10 UTC) #60
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1706123002/400001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1706123002/400001
4 years, 9 months ago (2016-03-09 15:57:34 UTC) #63
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-09 17:12:52 UTC) #65
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1706123002/400001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1706123002/400001
4 years, 9 months ago (2016-03-11 16:43:45 UTC) #67
robliao
On 2016/03/09 17:12:52, commit-bot: I haz the power wrote: > Dry run: This issue passed ...
4 years, 9 months ago (2016-03-11 16:44:03 UTC) #68
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-11 18:16:12 UTC) #70
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1706123002/400001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1706123002/400001
4 years, 9 months ago (2016-03-14 17:10:48 UTC) #72
danakj
LGTM https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_impl.cc#newcode82 base/task_scheduler/scheduler_lock_impl.cc:82: DCHECK(predecessor != lock) << On 2016/03/08 22:14:08, robliao ...
4 years, 9 months ago (2016-03-14 18:00:36 UTC) #73
gab
Thanks Rob/Dana, a minor comment on the latest changes. https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc File base/task_scheduler/scheduler_lock_unittest.cc (right): https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc#newcode25 base/task_scheduler/scheduler_lock_unittest.cc:25: ...
4 years, 9 months ago (2016-03-14 18:26:04 UTC) #74
fdoray
https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc File base/task_scheduler/scheduler_lock_unittest.cc (right): https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc#newcode25 base/task_scheduler/scheduler_lock_unittest.cc:25: #define EXPECT_DCHECK_DEATH(statement, regex) On 2016/03/14 18:26:04, gab wrote: > ...
4 years, 9 months ago (2016-03-14 18:55:52 UTC) #75
danakj
On 2016/03/14 18:55:52, fdoray wrote: > https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc > File base/task_scheduler/scheduler_lock_unittest.cc (right): > > https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc#newcode25 > ...
4 years, 9 months ago (2016-03-14 19:00:52 UTC) #76
robliao
Updated most of the DCHECKs except one (requires operator<< for iterator) https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc File base/task_scheduler/scheduler_lock_unittest.cc (right): ...
4 years, 9 months ago (2016-03-14 19:09:53 UTC) #77
robliao
https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_impl.cc File base/task_scheduler/scheduler_lock_impl.cc (right): https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_impl.cc#newcode82 base/task_scheduler/scheduler_lock_impl.cc:82: DCHECK(predecessor != lock) << On 2016/03/14 18:00:36, danakj wrote: ...
4 years, 9 months ago (2016-03-14 19:10:28 UTC) #78
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1706123002/420001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1706123002/420001
4 years, 9 months ago (2016-03-14 19:13:02 UTC) #80
danakj
Thanks LGTM
4 years, 9 months ago (2016-03-14 19:37:49 UTC) #82
gab
https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc File base/task_scheduler/scheduler_lock_unittest.cc (right): https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc#newcode25 base/task_scheduler/scheduler_lock_unittest.cc:25: #define EXPECT_DCHECK_DEATH(statement, regex) On 2016/03/14 19:09:52, robliao wrote: > ...
4 years, 9 months ago (2016-03-14 19:51:13 UTC) #83
robliao
https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc File base/task_scheduler/scheduler_lock_unittest.cc (right): https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc#newcode25 base/task_scheduler/scheduler_lock_unittest.cc:25: #define EXPECT_DCHECK_DEATH(statement, regex) On 2016/03/14 19:51:13, gab wrote: > ...
4 years, 9 months ago (2016-03-14 19:55:41 UTC) #84
gab
https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc File base/task_scheduler/scheduler_lock_unittest.cc (right): https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc#newcode25 base/task_scheduler/scheduler_lock_unittest.cc:25: #define EXPECT_DCHECK_DEATH(statement, regex) On 2016/03/14 19:55:41, robliao wrote: > ...
4 years, 9 months ago (2016-03-14 20:02:52 UTC) #85
robliao
https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc File base/task_scheduler/scheduler_lock_unittest.cc (right): https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc#newcode25 base/task_scheduler/scheduler_lock_unittest.cc:25: #define EXPECT_DCHECK_DEATH(statement, regex) On 2016/03/14 20:02:52, gab wrote: > ...
4 years, 9 months ago (2016-03-14 20:25:07 UTC) #86
robliao
https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc File base/task_scheduler/scheduler_lock_unittest.cc (right): https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc#newcode25 base/task_scheduler/scheduler_lock_unittest.cc:25: #define EXPECT_DCHECK_DEATH(statement, regex) On 2016/03/14 20:25:07, robliao wrote: > ...
4 years, 9 months ago (2016-03-14 20:37:13 UTC) #87
gab
On 2016/03/14 20:37:13, robliao wrote: > https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc > File base/task_scheduler/scheduler_lock_unittest.cc (right): > > https://codereview.chromium.org/1706123002/diff/400001/base/task_scheduler/scheduler_lock_unittest.cc#newcode25 > ...
4 years, 9 months ago (2016-03-14 20:53:40 UTC) #88
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-14 21:00:14 UTC) #90
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1706123002/420001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1706123002/420001
4 years, 9 months ago (2016-03-14 21:26:02 UTC) #93
commit-bot: I haz the power
Committed patchset #11 (id:420001)
4 years, 9 months ago (2016-03-14 21:32:52 UTC) #95
commit-bot: I haz the power
4 years, 9 months ago (2016-03-14 21:33:41 UTC) #97
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/b6f61ce5c35e985cf07279ea25fd846b0b9d6f9d
Cr-Commit-Position: refs/heads/master@{#381075}

Powered by Google App Engine
This is Rietveld 408576698