Support threads owning other threads in platform/scheduler/ [chromium/src : master]

1 view
Skip to first unread message

Nate Chapin (Gerrit)

unread,
Apr 4, 2018, 3:44:23 PM4/4/18
to blink-re...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Alexander Timin, Hiroki Nakagawa, Commit Bot, chromium...@chromium.org

altimin, what do you think of this?

I'm trying to find a way to teach the scheduler how to propagate throttling state to nested worker threads, where a worker thread is owned by a different worker thread, rather than directly by a frame.

View Change

    To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: chromium/src
    Gerrit-Branch: master
    Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
    Gerrit-Change-Number: 994060
    Gerrit-PatchSet: 1
    Gerrit-Owner: Nate Chapin <jap...@chromium.org>
    Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
    Gerrit-CC: Commit Bot <commi...@chromium.org>
    Gerrit-Comment-Date: Wed, 04 Apr 2018 19:44:19 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    Gerrit-MessageType: comment

    Nate Chapin (Gerrit)

    unread,
    Apr 4, 2018, 3:50:23 PM4/4/18
    to blink-re...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Alexander Timin, Hiroki Nakagawa, Commit Bot, chromium...@chromium.org

    Patch Set 1:

    altimin, what do you think of this?

    I'm trying to find a way to teach the scheduler how to propagate throttling state to nested worker threads, where a worker thread is owned by a different worker thread, rather than directly by a frame.

    Also, note that this was split out of a monolithic CL (https://chromium-review.googlesource.com/c/chromium/src/+/953746) which I believe implements nested workers in their entirety.

    View Change

      To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: chromium/src
      Gerrit-Branch: master
      Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
      Gerrit-Change-Number: 994060
      Gerrit-PatchSet: 1
      Gerrit-Owner: Nate Chapin <jap...@chromium.org>
      Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
      Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
      Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
      Gerrit-CC: Commit Bot <commi...@chromium.org>
      Gerrit-Comment-Date: Wed, 04 Apr 2018 19:50:21 +0000

      Alexander Timin (Gerrit)

      unread,
      Apr 4, 2018, 5:09:12 PM4/4/18
      to Nate Chapin, blink-re...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Hiroki Nakagawa, Commit Bot, chromium...@chromium.org

      Patch Set 1:

      Patch Set 1:

      altimin, what do you think of this?

      I'm trying to find a way to teach the scheduler how to propagate throttling state to nested worker threads, where a worker thread is owned by a different worker thread, rather than directly by a frame.

      Also, note that this was split out of a monolithic CL (https://chromium-review.googlesource.com/c/chromium/src/+/953746) which I believe implements nested workers in their entirety.

      Based on a quick skim, general direction seems reasonable. I'll do a proper review and drop a few nits tomorrow. (mostly about thread guarantees, DCHECKs for it and replacing IsMainThread with IsParentObjectThread()). Ensuring that we either have a parent frame or a parent worker (and maybe splitting WorkerSchedulerProxy) might be a good idea.

      View Change

        To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: chromium/src
        Gerrit-Branch: master
        Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
        Gerrit-Change-Number: 994060
        Gerrit-PatchSet: 1
        Gerrit-Owner: Nate Chapin <jap...@chromium.org>
        Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
        Gerrit-CC: Commit Bot <commi...@chromium.org>
        Gerrit-Comment-Date: Wed, 04 Apr 2018 21:09:06 +0000

        Nate Chapin (Gerrit)

        unread,
        Apr 4, 2018, 6:08:28 PM4/4/18
        to blink-re...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Alexander Timin, Hiroki Nakagawa, Commit Bot, chromium...@chromium.org

        View Change

        1 comment:

        To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: chromium/src
        Gerrit-Branch: master
        Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
        Gerrit-Change-Number: 994060
        Gerrit-PatchSet: 2
        Gerrit-Owner: Nate Chapin <jap...@chromium.org>
        Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
        Gerrit-CC: Commit Bot <commi...@chromium.org>
        Gerrit-Comment-Date: Wed, 04 Apr 2018 22:08:20 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Gerrit-MessageType: comment

        Hiroki Nakagawa (Gerrit)

        unread,
        Apr 6, 2018, 2:50:56 AM4/6/18
        to Nate Chapin, blink-re...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Kenichi Ishibashi, Alexander Timin, Commit Bot, chromium...@chromium.org

        +bashi@ for MemoryCoodinator. Can you take a look at my review comment in MemoryCoordinator.cpp?

        View Change

        8 comments:

        To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: chromium/src
        Gerrit-Branch: master
        Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
        Gerrit-Change-Number: 994060
        Gerrit-PatchSet: 2
        Gerrit-Owner: Nate Chapin <jap...@chromium.org>
        Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
        Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
        Gerrit-CC: Commit Bot <commi...@chromium.org>
        Gerrit-Comment-Date: Fri, 06 Apr 2018 06:50:52 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Nate Chapin <jap...@chromium.org>
        Gerrit-MessageType: comment

        Hiroki Nakagawa (Gerrit)

        unread,
        Apr 6, 2018, 2:50:56 AM4/6/18
        to Kenichi Ishibashi, blink-re...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Nate Chapin, Alexander Timin

        Hiroki Nakagawa would like Kenichi Ishibashi to review this change.

        View Change

        Support threads owning other threads in platform/scheduler/

        This will support scheduling for nested workers.

        Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
        ---
        M third_party/WebKit/Source/core/workers/DedicatedWorkerThread.cpp
        M third_party/WebKit/Source/platform/MemoryCoordinator.cpp
        M third_party/WebKit/Source/platform/WebThread.cpp
        M third_party/WebKit/Source/platform/WebThreadSupportingGC.cpp
        M third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler.cc
        M third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler.h
        M third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_proxy.cc
        M third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_proxy.h
        M third_party/WebKit/Source/platform/scheduler/worker/worker_thread_scheduler.cc
        M third_party/WebKit/Source/platform/scheduler/worker/worker_thread_scheduler.h
        M third_party/WebKit/public/platform/WebThread.h
        11 files changed, 86 insertions(+), 23 deletions(-)


        To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: chromium/src
        Gerrit-Branch: master
        Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
        Gerrit-Change-Number: 994060
        Gerrit-PatchSet: 2
        Gerrit-Owner: Nate Chapin <jap...@chromium.org>
        Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
        Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
        Gerrit-CC: Commit Bot <commi...@chromium.org>
        Gerrit-MessageType: newchange

        Kenichi Ishibashi (Gerrit)

        unread,
        Apr 6, 2018, 3:33:08 AM4/6/18
        to Nate Chapin, blink-re...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Hiroki Nakagawa, Alexander Timin, Commit Bot, chromium...@chromium.org

        View Change

        1 comment:

          • I suspect RegisterThread() and UnregisterThread() are not thread-safe. […]

            Yeah, it seems that RegisterThread() and UnregisterThread() are non thread-safe. There might be couple of options to make them thread-safe, probably using a mutex would be a quick fix?

        To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: chromium/src
        Gerrit-Branch: master
        Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
        Gerrit-Change-Number: 994060
        Gerrit-PatchSet: 2
        Gerrit-Owner: Nate Chapin <jap...@chromium.org>
        Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
        Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
        Gerrit-CC: Commit Bot <commi...@chromium.org>
        Gerrit-Comment-Date: Fri, 06 Apr 2018 07:32:59 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Hiroki Nakagawa <nhi...@chromium.org>

        Nate Chapin (Gerrit)

        unread,
        Apr 6, 2018, 4:13:17 PM4/6/18
        to blink-re...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Kenichi Ishibashi, Hiroki Nakagawa, Alexander Timin, Commit Bot, chromium...@chromium.org

        View Change

        8 comments:

          • We might need to return early when loading_context->GetExecutionContext()->IsDocument() is false.

          • Done

          • How about checking this using base::ThreadChecker?

          • Done

        To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: chromium/src
        Gerrit-Branch: master
        Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
        Gerrit-Change-Number: 994060
        Gerrit-PatchSet: 3
        Gerrit-Owner: Nate Chapin <jap...@chromium.org>
        Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
        Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
        Gerrit-CC: Commit Bot <commi...@chromium.org>
        Gerrit-Comment-Date: Fri, 06 Apr 2018 20:13:15 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Kenichi Ishibashi <ba...@chromium.org>

        Alexander Timin (Gerrit)

        unread,
        Apr 9, 2018, 9:43:35 AM4/9/18
        to Nate Chapin, blink-re...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Kenichi Ishibashi, Hiroki Nakagawa, Commit Bot, chromium...@chromium.org

        View Change

        1 comment:

        • File third_party/WebKit/Source/platform/scheduler/worker/worker_thread_scheduler.cc:

          • Patch Set #3, Line 189:

            for (WorkerSchedulerProxy* child_proxy : child_worker_scheduler_proxies_)
            child_proxy->OnThrottlingStateChanged(throttling_state);

            It seems that a OnThrottlingStateChanged notification will have to do multiple thread hops for nested workers, which is unfortunate -- scripts in workers can be arbitrary long, so this notification might be delayed.

            I would strongly prefer if we could all WorkerSchedulerProxy::OnThrottlingStateChanged on the main thread. I wonder if it's possible to register an observer asynchronously -- when a nested WorkerSchedulerProxy is created, a async call is dispatched to the main thread to register it as an observer.

        To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: chromium/src
        Gerrit-Branch: master
        Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
        Gerrit-Change-Number: 994060
        Gerrit-PatchSet: 3
        Gerrit-Owner: Nate Chapin <jap...@chromium.org>
        Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
        Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
        Gerrit-CC: Commit Bot <commi...@chromium.org>
        Gerrit-Comment-Date: Mon, 09 Apr 2018 13:43:33 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Gerrit-MessageType: comment

        Kenichi Ishibashi (Gerrit)

        unread,
        Apr 12, 2018, 12:54:12 AM4/12/18
        to Nate Chapin, blink-re...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Alexander Timin, Hiroki Nakagawa, Commit Bot, chromium...@chromium.org

        View Change

        1 comment:

        To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

        Gerrit-Project: chromium/src
        Gerrit-Branch: master
        Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
        Gerrit-Change-Number: 994060
        Gerrit-PatchSet: 3
        Gerrit-Owner: Nate Chapin <jap...@chromium.org>
        Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
        Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
        Gerrit-CC: Commit Bot <commi...@chromium.org>
        Gerrit-Comment-Date: Thu, 12 Apr 2018 04:54:07 +0000

        Alexander Timin (Gerrit)

        unread,
        Apr 27, 2018, 2:59:05 PM4/27/18
        to Nate Chapin, blink-re...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Kenichi Ishibashi, Hiroki Nakagawa, Commit Bot, chromium...@chromium.org

        As discussed offline, general approach lgtm (but it still terrifies me slightly).

        One serious comment that I have is that SetParentThread() seems like a wrong abstraction.

        Could we use FrameOrWorkerScheduler and change SetFrameScheduler to SetParentScheduler?
        We also could add IsFrameScheduler and IsWorkerScheduler to FrameOrWorkerScheduler (and probably GetWorkerThreadScheduler to WorkerScheduler).

        View Change

          To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

          Gerrit-Project: chromium/src
          Gerrit-Branch: master
          Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
          Gerrit-Change-Number: 994060
          Gerrit-PatchSet: 5
          Gerrit-Owner: Nate Chapin <jap...@chromium.org>
          Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
          Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
          Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
          Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
          Gerrit-CC: Commit Bot <commi...@chromium.org>
          Gerrit-Comment-Date: Fri, 27 Apr 2018 18:58:54 +0000

          Nate Chapin (Gerrit)

          unread,
          May 22, 2018, 5:18:37 PM5/22/18
          to blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Alexander Timin, Kenichi Ishibashi, Hiroki Nakagawa, Commit Bot, chromium...@chromium.org

          Patch Set 5:

          As discussed offline, general approach lgtm (but it still terrifies me slightly).

          One serious comment that I have is that SetParentThread() seems like a wrong abstraction.

          Could we use FrameOrWorkerScheduler and change SetFrameScheduler to SetParentScheduler?
          We also could add IsFrameScheduler and IsWorkerScheduler to FrameOrWorkerScheduler (and probably GetWorkerThreadScheduler to WorkerScheduler).

          Rewrote to use FrameOrWorkerScheduler, sorry for taking so long to get back to this. PTAL :)

          View Change

          3 comments:

          To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

          Gerrit-Project: chromium/src
          Gerrit-Branch: master
          Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
          Gerrit-Change-Number: 994060
          Gerrit-PatchSet: 10
          Gerrit-Owner: Nate Chapin <jap...@chromium.org>
          Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
          Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
          Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
          Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
          Gerrit-CC: Commit Bot <commi...@chromium.org>
          Gerrit-Comment-Date: Tue, 22 May 2018 21:18:33 +0000

          Alexander Timin (Gerrit)

          unread,
          May 23, 2018, 1:31:58 PM5/23/18
          to Nate Chapin, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Kenichi Ishibashi, Hiroki Nakagawa, Commit Bot, chromium...@chromium.org

          This looks great, thanks for following up!

          Patch set 10:Code-Review +1

          View Change

          2 comments:

          To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

          Gerrit-Project: chromium/src
          Gerrit-Branch: master
          Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
          Gerrit-Change-Number: 994060
          Gerrit-PatchSet: 10
          Gerrit-Owner: Nate Chapin <jap...@chromium.org>
          Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
          Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
          Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
          Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
          Gerrit-CC: Commit Bot <commi...@chromium.org>
          Gerrit-Comment-Date: Wed, 23 May 2018 17:31:52 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: Yes
          Gerrit-MessageType: comment

          Nate Chapin (Gerrit)

          unread,
          May 23, 2018, 7:51:35 PM5/23/18
          to blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Alexander Timin, Kenichi Ishibashi, Hiroki Nakagawa, Commit Bot, chromium...@chromium.org

          View Change

          2 comments:

            • Instead of relying on static casts I'd prefer to add ToWorkerScheduler() and ToFrameScheduler() meth […]

              Done

          To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

          Gerrit-Project: chromium/src
          Gerrit-Branch: master
          Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
          Gerrit-Change-Number: 994060
          Gerrit-PatchSet: 11
          Gerrit-Owner: Nate Chapin <jap...@chromium.org>
          Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
          Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
          Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
          Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
          Gerrit-CC: Commit Bot <commi...@chromium.org>
          Gerrit-Comment-Date: Wed, 23 May 2018 23:51:33 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          Comment-In-Reply-To: Alexander Timin <alt...@chromium.org>
          Gerrit-MessageType: comment

          Hiroki Nakagawa (Gerrit)

          unread,
          May 23, 2018, 11:47:05 PM5/23/18
          to Nate Chapin, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Alexander Timin, Kenichi Ishibashi, Commit Bot, chromium...@chromium.org

          LGTM

          Patch set 11:Code-Review +1

          View Change

          6 comments:


            • // on the owner's thread.

          To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

          Gerrit-Project: chromium/src
          Gerrit-Branch: master
          Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
          Gerrit-Change-Number: 994060
          Gerrit-PatchSet: 11
          Gerrit-Owner: Nate Chapin <jap...@chromium.org>
          Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
          Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
          Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
          Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
          Gerrit-CC: Commit Bot <commi...@chromium.org>
          Gerrit-Comment-Date: Thu, 24 May 2018 03:46:59 +0000

          Nate Chapin (Gerrit)

          unread,
          May 24, 2018, 4:52:08 PM5/24/18
          to blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Hiroki Nakagawa, Alexander Timin, Kenichi Ishibashi, Commit Bot, chromium...@chromium.org

          View Change

          6 comments:

            • Can you remove "explicit"?

            • // It's owned by DedicatedWorkerThread and is created and destroyed

            • // on the parent thread. 

              "the owner's thread" may sound confusing because, against the name of "DedicatedWorkerThread", it's […]

              Done

            • Can this be called from the parent worker thread?

              Only from child worker thread during init.

            • Patch Set #11, Line 51: base::Optional<FrameOriginType> parent_frame_type() const {

              ditto.

              ditto. :)

            • Patch Set #11, Line 70: void DisposeWorkerSchedulerOnThread(base::WaitableEvent* completion) {

              DCHECK(thread_task_runner_->BelongsToCurrentThread());

            • Done

          To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

          Gerrit-Project: chromium/src
          Gerrit-Branch: master
          Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
          Gerrit-Change-Number: 994060
          Gerrit-PatchSet: 12
          Gerrit-Owner: Nate Chapin <jap...@chromium.org>
          Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
          Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
          Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
          Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
          Gerrit-CC: Commit Bot <commi...@chromium.org>
          Gerrit-Comment-Date: Thu, 24 May 2018 20:51:57 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          Comment-In-Reply-To: Hiroki Nakagawa <nhi...@chromium.org>
          Gerrit-MessageType: comment

          Nate Chapin (Gerrit)

          unread,
          May 25, 2018, 6:20:37 PM5/25/18
          to blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Hiroki Nakagawa, Alexander Timin, Kenichi Ishibashi, Commit Bot, chromium...@chromium.org

          Patch set 13:Commit-Queue +2

          View Change

            To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

            Gerrit-Project: chromium/src
            Gerrit-Branch: master
            Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
            Gerrit-Change-Number: 994060
            Gerrit-PatchSet: 13
            Gerrit-Owner: Nate Chapin <jap...@chromium.org>
            Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
            Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
            Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
            Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
            Gerrit-CC: Commit Bot <commi...@chromium.org>
            Gerrit-Comment-Date: Fri, 25 May 2018 22:20:35 +0000
            Gerrit-HasComments: No
            Gerrit-Has-Labels: Yes
            Gerrit-MessageType: comment

            Commit Bot (Gerrit)

            unread,
            May 25, 2018, 6:20:48 PM5/25/18
            to Nate Chapin, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Hiroki Nakagawa, Alexander Timin, Kenichi Ishibashi, chromium...@chromium.org

            CQ is trying the patch.

            Note: The patchset sent to CQ was uploaded after this CL was approved.
            "Rebase" https://chromium-review.googlesource.com/c/994060/13

            Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/chromium-review.googlesource.com/994060/13

            Bot data: {"action": "start", "triggered_at": "2018-05-25T22:20:35.0Z", "cq_cfg_revision": "6a25833cb93164fb378d8087f9dae5fc28fc9b1e", "revision": "63a7bc068b080b949a57b8c1161fd66217db5d23"}

            View Change

              To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

              Gerrit-Project: chromium/src
              Gerrit-Branch: master
              Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
              Gerrit-Change-Number: 994060
              Gerrit-PatchSet: 13
              Gerrit-Owner: Nate Chapin <jap...@chromium.org>
              Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
              Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
              Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
              Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
              Gerrit-CC: Commit Bot <commi...@chromium.org>
              Gerrit-Comment-Date: Fri, 25 May 2018 22:20:47 +0000

              Commit Bot (Gerrit)

              unread,
              May 25, 2018, 6:25:31 PM5/25/18
              to Nate Chapin, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Hiroki Nakagawa, Alexander Timin, Kenichi Ishibashi, chromium...@chromium.org
              Try jobs failed on following builders:
              chromium_presubmit on luci.chromium.try (JOB_FAILED, https://ci.chromium.org/p/chromium/builders/luci.chromium.try/chromium_presubmit/124529)

              View Change

                To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

                Gerrit-Project: chromium/src
                Gerrit-Branch: master
                Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
                Gerrit-Change-Number: 994060
                Gerrit-PatchSet: 13
                Gerrit-Owner: Nate Chapin <jap...@chromium.org>
                Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
                Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
                Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
                Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
                Gerrit-CC: Commit Bot <commi...@chromium.org>
                Gerrit-Comment-Date: Fri, 25 May 2018 22:25:30 +0000

                Pavel Feldman (Gerrit)

                unread,
                May 25, 2018, 6:53:04 PM5/25/18
                to Nate Chapin, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Hiroki Nakagawa, Alexander Timin, Kenichi Ishibashi, Commit Bot, chromium...@chromium.org

                Patch set 13:Code-Review +1

                View Change

                  To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

                  Gerrit-Project: chromium/src
                  Gerrit-Branch: master
                  Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
                  Gerrit-Change-Number: 994060
                  Gerrit-PatchSet: 13
                  Gerrit-Owner: Nate Chapin <jap...@chromium.org>
                  Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
                  Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
                  Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
                  Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
                  Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                  Gerrit-CC: Commit Bot <commi...@chromium.org>
                  Gerrit-Comment-Date: Fri, 25 May 2018 22:53:03 +0000

                  Nate Chapin (Gerrit)

                  unread,
                  May 25, 2018, 6:53:30 PM5/25/18
                  to blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Pavel Feldman, Hiroki Nakagawa, Alexander Timin, Kenichi Ishibashi, Commit Bot, chromium...@chromium.org

                  Patch set 13:Commit-Queue +2

                  View Change

                    To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

                    Gerrit-Project: chromium/src
                    Gerrit-Branch: master
                    Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
                    Gerrit-Change-Number: 994060
                    Gerrit-PatchSet: 13
                    Gerrit-Owner: Nate Chapin <jap...@chromium.org>
                    Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
                    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
                    Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
                    Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
                    Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                    Gerrit-CC: Commit Bot <commi...@chromium.org>
                    Gerrit-Comment-Date: Fri, 25 May 2018 22:53:28 +0000

                    Commit Bot (Gerrit)

                    unread,
                    May 25, 2018, 7:04:05 PM5/25/18
                    to Nate Chapin, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Pavel Feldman, Hiroki Nakagawa, Alexander Timin, Kenichi Ishibashi, chromium...@chromium.org

                    Commit Bot merged this change.

                    View Change

                    Approvals: Hiroki Nakagawa: Looks good to me Pavel Feldman: Looks good to me Alexander Timin: Looks good to me Nate Chapin: Commit
                    Support WorkerSchedulers for nested workers

                    Currently, FrameSchedulerImpl keeps a set of throttling observers that
                    it notifies when throttling state changes. This includes each worker's
                    WorkerSchedulerProxy.

                    This CL moves throttling observers to the base class,
                    FrameOrWorkerScheduler, allowing each nested worker to register its
                    WorkerSchedulerProxy with its parent WorkerScheduler, so the
                    WorkerScheduler can then propagate throttling state to the nested
                    worker.

                    Bug: 829119
                    Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
                    Reviewed-on: https://chromium-review.googlesource.com/994060
                    Reviewed-by: Pavel Feldman <pfel...@chromium.org>
                    Reviewed-by: Hiroki Nakagawa <nhi...@chromium.org>
                    Reviewed-by: Alexander Timin <alt...@chromium.org>
                    Commit-Queue: Nate Chapin <jap...@chromium.org>
                    Cr-Commit-Position: refs/heads/master@{#562052}
                    ---
                    M third_party/blink/public/platform/web_thread.h
                    M third_party/blink/renderer/core/frame/local_frame.cc
                    M third_party/blink/renderer/core/workers/dedicated_worker_thread.cc
                    M third_party/blink/renderer/core/workers/worker_thread.cc
                    M third_party/blink/renderer/platform/scheduler/BUILD.gn
                    M third_party/blink/renderer/platform/scheduler/child/webthread_impl_for_worker_scheduler.cc
                    M third_party/blink/renderer/platform/scheduler/child/webthread_impl_for_worker_scheduler.h
                    M third_party/blink/renderer/platform/scheduler/child/worker_scheduler.cc
                    M third_party/blink/renderer/platform/scheduler/child/worker_scheduler.h
                    M third_party/blink/renderer/platform/scheduler/child/worker_scheduler_proxy.cc
                    M third_party/blink/renderer/platform/scheduler/child/worker_scheduler_proxy.h
                    M third_party/blink/renderer/platform/scheduler/child/worker_scheduler_proxy_unittest.cc
                    M third_party/blink/renderer/platform/scheduler/child/worker_scheduler_unittest.cc
                    A third_party/blink/renderer/platform/scheduler/common/frame_or_worker_scheduler.cc
                    M third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
                    M third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h
                    M third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h
                    M third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h
                    M third_party/blink/renderer/platform/scheduler/test/fake_frame_scheduler.h
                    M third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc
                    M third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.h
                    M third_party/blink/renderer/platform/web_thread.cc
                    22 files changed, 303 insertions(+), 237 deletions(-)


                    To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

                    Gerrit-Project: chromium/src
                    Gerrit-Branch: master
                    Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
                    Gerrit-Change-Number: 994060
                    Gerrit-PatchSet: 14
                    Gerrit-Owner: Nate Chapin <jap...@chromium.org>
                    Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
                    Gerrit-Reviewer: Commit Bot <commi...@chromium.org>
                    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
                    Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
                    Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
                    Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                    Gerrit-MessageType: merged

                    Dmitry Gozman (Gerrit)

                    unread,
                    May 27, 2018, 11:45:04 AM5/27/18
                    to Nate Chapin, Commit Bot, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Pavel Feldman, Hiroki Nakagawa, Alexander Timin, Kenichi Ishibashi, chromium...@chromium.org

                    View Change

                    1 comment:

                    To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

                    Gerrit-Project: chromium/src
                    Gerrit-Branch: master
                    Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
                    Gerrit-Change-Number: 994060
                    Gerrit-PatchSet: 14
                    Gerrit-Owner: Nate Chapin <jap...@chromium.org>
                    Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
                    Gerrit-Reviewer: Commit Bot <commi...@chromium.org>
                    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
                    Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
                    Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
                    Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                    Gerrit-CC: Dmitry Gozman <dgo...@chromium.org>
                    Gerrit-Comment-Date: Sun, 27 May 2018 15:45:01 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    Gerrit-MessageType: comment

                    Hiroki Nakagawa (Gerrit)

                    unread,
                    May 28, 2018, 12:12:08 AM5/28/18
                    to Nate Chapin, Commit Bot, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, blink-work...@chromium.org, falken...@chromium.org, horo+...@chromium.org, kinuko...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, shimazu...@chromium.org, Dmitry Gozman, Pavel Feldman, Alexander Timin, Kenichi Ishibashi, chromium...@chromium.org

                    View Change

                    1 comment:

                    To view, visit change 994060. To unsubscribe, or for help writing mail filters, visit settings.

                    Gerrit-Project: chromium/src
                    Gerrit-Branch: master
                    Gerrit-Change-Id: If005e3ec781b2fc0ecd3ba1ba73fa4b0e6ef1a0f
                    Gerrit-Change-Number: 994060
                    Gerrit-PatchSet: 14
                    Gerrit-Owner: Nate Chapin <jap...@chromium.org>
                    Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
                    Gerrit-Reviewer: Commit Bot <commi...@chromium.org>
                    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
                    Gerrit-Reviewer: Kenichi Ishibashi <ba...@chromium.org>
                    Gerrit-Reviewer: Nate Chapin <jap...@chromium.org>
                    Gerrit-Reviewer: Pavel Feldman <pfel...@chromium.org>
                    Gerrit-CC: Dmitry Gozman <dgo...@chromium.org>
                    Gerrit-Comment-Date: Mon, 28 May 2018 04:12:03 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    Comment-In-Reply-To: Dmitry Gozman <dgo...@chromium.org>
                    Gerrit-MessageType: comment
                    Reply all
                    Reply to author
                    Forward
                    0 new messages