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

Issue 2832763002: Reland of Worker: Introduce per-global-scope task scheduler (Closed)

Created:
3 years, 8 months ago by nhiroki
Modified:
3 years, 8 months ago
Reviewers:
kinuko, haraken, Sami, altimin, tzik
CC:
chromium-reviews, blink-reviews-api_chromium.org, shimazu+worker_chromium.org, kinuko+worker_chromium.org, dglazkov+blink, Raymond Toy, blink-reviews, horo+watch_chromium.org, falken+watch_chromium.org, hongchan, scheduler-bugs_chromium.org, kinuko+watch, blink-worker-reviews_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Reland of Worker: Introduce per-global-scope task scheduler I couldn't reproduce the failure on my local machine and trybots. If this still fails the tests only on the specific bot, I'll mark them with SKIP and fix them in a separate CL. Original issue's description: > Revert of Worker: Introduce per-global-scope task scheduler (patchset #22 id:450001 of https://codereview.chromium.org/2806623004/ ) > > Reason for revert: > Seems to have caused a crash in fast/workers/termination-early.html on Webkit Linux Trusty Leak - > https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Linux_Trusty_Leak/4107/layout-test-results/results.html > https://uberchromegw.corp.google.com/i/chromium.webkit/builders/WebKit%20Linux%20Trusty%20Leak/builds/4107 > > https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Linux_Trusty_Leak/4106/layout-test-results/fast/workers/termination-early-crash-log.txt > https://uberchromegw.corp.google.com/i/chromium.webkit/builders/WebKit%20Linux%20Trusty%20Leak/builds/4106 > > Original issue's description: > > Worker: Introduce per-global-scope task scheduler > > > > This CL introduces WorkerGlobalScopeScheduler to make it simpler and saner to > > manage tasks on worker threads. > > > > Before this CL, tasks on worker threads were always pushed into the thread's > > default task queue, they should be handled in different ways based on their > > task types though. For example, worker tasks shouldn't run after the global > > scope is closed, while thread control tasks should run even after that. To > > achieve it, worker tasks were always wrapped with WorkerThread's method to check > > the current thread state. This was so tricky. > > > > After this CL, each global scope has its own task queues like per-frame task > > scheduler. Worker tasks are pushed into the task queues, control tasks are still > > pushed into the thread's default task queue though. Thanks to this separation, > > we can abort only worker tasks by simply unregistering the queues when a global > > scope is closed. > > > > In addition, this CL unifies postTask interfaces into TaskRunnerHelper (issue > > 694914), and enables any threads to post a task to worker threads because of > > thread-safe refcounted WebTaskRunner. > > > > BUG=670534, 694914, 710364 > > > > Review-Url: https://codereview.chromium.org/2806623004 > > Cr-Commit-Position: refs/heads/master@{#465841} > > Committed: https://chromium.googlesource.com/chromium/src/+/d56a35fb25dc388a0506174b9e3fda67337313ce > > TBR=kinuko@chromium.org,haraken@chromium.org,tzik@chromium.org,skyostil@chromium.org,altimin@chromium.org,nhiroki@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=670534, 694914, 710364 > > Review-Url: https://codereview.chromium.org/2831843002 > Cr-Commit-Position: refs/heads/master@{#465892} > Committed: https://chromium.googlesource.com/chromium/src/+/ee6a4f06b0e0561618669ed56e5997af91108c3e TBR=kinuko@chromium.org,haraken@chromium.org,tzik@chromium.org,skyostil@chromium.org,altimin@chromium.org,aboxhall@chromium.org BUG=670534, 694914, 710364 Review-Url: https://codereview.chromium.org/2832763002 Cr-Commit-Position: refs/heads/master@{#465962} Committed: https://chromium.googlesource.com/chromium/src/+/7800a474d39eacc36c6c247f6a956e15f5d2489a

Patch Set 1 : Original CL #

Unified diffs Side-by-side diffs Delta from patch set Stats (+467 lines, -277 lines) Patch
M third_party/WebKit/Source/core/dom/TaskRunnerHelper.h View 2 chunks +10 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/dom/TaskRunnerHelper.cpp View 3 chunks +56 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/loader/ThreadableLoaderTest.cpp View 2 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/workers/DedicatedWorkerTest.cpp View 4 chunks +12 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/core/workers/InProcessWorkerMessagingProxy.cpp View 3 chunks +5 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/workers/InProcessWorkerObjectProxy.cpp View 2 chunks +6 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/workers/ThreadedMessagingProxyBase.cpp View 2 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/workers/ThreadedWorkletTest.cpp View 3 chunks +11 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/workers/WorkerEventQueue.cpp View 2 chunks +11 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp View 1 chunk +1 line, -2 lines 0 comments Download
M third_party/WebKit/Source/core/workers/WorkerOrWorkletGlobalScope.cpp View 4 chunks +8 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/workers/WorkerThread.h View 6 chunks +12 lines, -10 lines 0 comments Download
M third_party/WebKit/Source/core/workers/WorkerThread.cpp View 8 chunks +32 lines, -55 lines 0 comments Download
M third_party/WebKit/Source/modules/time_zone_monitor/TimeZoneMonitorClient.cpp View 2 chunks +5 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScopeTest.cpp View 2 chunks +22 lines, -18 lines 0 comments Download
M third_party/WebKit/Source/platform/BUILD.gn View 2 chunks +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/compositor_worker_scheduler.h View 1 chunk +5 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/compositor_worker_scheduler.cc View 2 chunks +15 lines, -121 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/web_task_runner_impl.h View 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/webthread_base.cc View 2 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler.h View 1 chunk +7 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler.cc View 2 chunks +2 lines, -2 lines 0 comments Download
A third_party/WebKit/Source/platform/scheduler/child/worker_global_scope_scheduler.h View 1 chunk +49 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/platform/scheduler/child/worker_global_scope_scheduler.cc View 1 chunk +34 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/platform/scheduler/child/worker_global_scope_scheduler_unittest.cc View 1 chunk +91 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/worker_scheduler.h View 2 chunks +9 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/worker_scheduler.cc View 2 chunks +12 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.h View 2 chunks +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc View 7 chunks +26 lines, -17 lines 0 comments Download
M third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.cpp View 2 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp View 3 chunks +9 lines, -6 lines 0 comments Download

Messages

Total messages: 28 (18 generated)
nhiroki
Created Reland of Worker: Introduce per-global-scope task scheduler
3 years, 8 months ago (2017-04-20 04:04:14 UTC) #1
aboxhall
On 2017/04/20 04:04:14, nhiroki wrote: > Created Reland of Worker: Introduce per-global-scope task scheduler Any ...
3 years, 8 months ago (2017-04-20 04:21:46 UTC) #15
nhiroki
Reviewers: You don't have to review this for now. I'm now investigating why this caused ...
3 years, 8 months ago (2017-04-20 04:24:20 UTC) #16
nhiroki
On 2017/04/20 04:21:46, aboxhall wrote: > On 2017/04/20 04:04:14, nhiroki wrote: > > Created Reland ...
3 years, 8 months ago (2017-04-20 04:27:07 UTC) #17
nhiroki
The bot returned to green after this patch was reverted. I've tried to reproduce this ...
3 years, 8 months ago (2017-04-20 05:31:21 UTC) #18
nhiroki
On 2017/04/20 05:31:21, nhiroki wrote: > The bot returned to green after this patch was ...
3 years, 8 months ago (2017-04-20 05:45:37 UTC) #20
nhiroki
On 2017/04/20 05:45:37, nhiroki wrote: > On 2017/04/20 05:31:21, nhiroki wrote: > > The bot ...
3 years, 8 months ago (2017-04-20 08:17:44 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2832763002/1
3 years, 8 months ago (2017-04-20 08:23:05 UTC) #24
Sami
lgtm to reland.
3 years, 8 months ago (2017-04-20 10:03:23 UTC) #25
commit-bot: I haz the power
3 years, 8 months ago (2017-04-20 10:07:06 UTC) #28
Message was sent while issue was closed.
Committed patchset #1 (id:1) as
https://chromium.googlesource.com/chromium/src/+/7800a474d39eacc36c6c247f6a95...

Powered by Google App Engine
This is Rietveld 408576698