Enable to call ExecuteAfterCurrentTask for NonMainThreadSchedulerImpl [chromium/src : main]

0 views
Skip to first unread message

Hajime Hoshi (Gerrit)

unread,
Oct 20, 2021, 9:00:22 AM10/20/21
to Alexander Timin, blink-...@chromium.org, chikamu...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org

Attention is currently required from: Alexander Timin.

Hajime Hoshi would like Alexander Timin to review this change.

View Change

Enable to call ExecuteAfterCurrentTask for NonMainThreadSchedulerImpl

This CL enables NonMainThreadSchedulerImpl to batch notifying feature
usages from workers, like what FrameSchedulerImpl and
MainThreadSchedulerImpl do.

This is a preparation to detect features not only from a frame but also
a dedicated worker.

Design Doc: https://docs.google.com/document/d/1CJfDNqA2tEp_dmxK5kaBHHqGjx7cK2_jhTpsCwSCa3A/edit?usp=sharing

Bug: 1146955
Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
---
M third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.cc
M third_party/blink/renderer/platform/scheduler/common/thread_scheduler_impl.h
M third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
M third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
M third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc
M third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.cc
M third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.h
7 files changed, 67 insertions(+), 13 deletions(-)


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

Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
Gerrit-Change-Number: 3233543
Gerrit-PatchSet: 1
Gerrit-Owner: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
Gerrit-Reviewer: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Attention: Alexander Timin <alt...@chromium.org>
Gerrit-MessageType: newchange

Hajime Hoshi (Gerrit)

unread,
Oct 20, 2021, 9:00:28 AM10/20/21
to blink-...@chromium.org, chikamu...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, Alexander Timin, Chromium LUCI CQ, chromium...@chromium.org

Attention is currently required from: Alexander Timin.

View Change

1 comment:

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

Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
Gerrit-Change-Number: 3233543
Gerrit-PatchSet: 1
Gerrit-Owner: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
Gerrit-Reviewer: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Attention: Alexander Timin <alt...@chromium.org>
Gerrit-Comment-Date: Wed, 20 Oct 2021 13:00:17 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment

Alexander Timin (Gerrit)

unread,
Oct 21, 2021, 7:01:44 PM10/21/21
to Scott Haseley, blink-...@chromium.org, chikamu...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, Hajime Hoshi

Attention is currently required from: Hajime Hoshi, Scott Haseley.

Alexander Timin would like Scott Haseley to review this change authored by Hajime Hoshi.

View Change

Enable to call ExecuteAfterCurrentTask for NonMainThreadSchedulerImpl

This CL enables NonMainThreadSchedulerImpl to batch notifying feature
usages from workers, like what FrameSchedulerImpl and
MainThreadSchedulerImpl do.

This is a preparation to detect features not only from a frame but also
a dedicated worker.

Design Doc: https://docs.google.com/document/d/1CJfDNqA2tEp_dmxK5kaBHHqGjx7cK2_jhTpsCwSCa3A/edit?usp=sharing

Bug: 1146955
Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
---
M third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.cc
M third_party/blink/renderer/platform/scheduler/common/thread_scheduler_impl.h
M third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
M third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
M third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc
M third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.cc
M third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.h
7 files changed, 67 insertions(+), 13 deletions(-)


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

Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
Gerrit-Change-Number: 3233543
Gerrit-PatchSet: 4
Gerrit-Owner: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
Gerrit-Reviewer: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
Gerrit-Attention: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Attention: Scott Haseley <shas...@chromium.org>
Gerrit-MessageType: newchange

Alexander Timin (Gerrit)

unread,
Oct 21, 2021, 7:01:51 PM10/21/21
to Hajime Hoshi, blink-...@chromium.org, chikamu...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, Scott Haseley, Chromium LUCI CQ, chromium...@chromium.org

Attention is currently required from: Hajime Hoshi, Scott Haseley.

View Change

1 comment:

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

Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
Gerrit-Change-Number: 3233543
Gerrit-PatchSet: 4
Gerrit-Owner: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
Gerrit-Reviewer: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
Gerrit-Attention: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Attention: Scott Haseley <shas...@chromium.org>
Gerrit-Comment-Date: Thu, 21 Oct 2021 23:01:40 +0000

Scott Haseley (Gerrit)

unread,
Oct 21, 2021, 7:43:30 PM10/21/21
to Hajime Hoshi, blink-...@chromium.org, chikamu...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, Alexander Timin, Chromium LUCI CQ, chromium...@chromium.org

Attention is currently required from: Hajime Hoshi.

View Change

3 comments:

  • File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h:

    • Patch Set #4, Line 1017: WTF::Vector<base::OnceClosure> on_task_completion_callbacks_;

      Moving this outside of main_thread_only() removes the thread check. Is that safe to do?

  • File third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.cc:

    • Patch Set #4, Line 135: void NonMainThreadSchedulerImpl::ExecuteAfterCurrentTask(

      I wonder if this, DispatchOnTaskCompletionCallbacks, and |on_task_completion_callbacks_| should be defined in thread_scheduer_impl.cc (doesn't yet exist)? This code looks duplicated between here and MainThreadSchedulerImpl.

  • File third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc:

    • Patch Set #4, Line 207: NonMainThreadSchedulerImpl::OnTaskCompleted(task_queue, task, task_timing,

      MainThreadSchedulerImpl runs after-task callbacks after the microtask checkpoint and recording the task end time. Should they be the same? I think we'd want to have this after task_timing->RecordTaskEnd() since changes the task_timing, which is passed to the callbacks.

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

Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
Gerrit-Change-Number: 3233543
Gerrit-PatchSet: 4
Gerrit-Owner: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
Gerrit-Reviewer: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
Gerrit-Attention: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Comment-Date: Thu, 21 Oct 2021 23:43:24 +0000

Hajime Hoshi (Gerrit)

unread,
Oct 25, 2021, 4:11:34 AM10/25/21
to blink-...@chromium.org, chikamu...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, Scott Haseley, Alexander Timin, Chromium LUCI CQ, chromium...@chromium.org

Attention is currently required from: Scott Haseley.

View Change

4 comments:

  • Patchset:

  • File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h:

    • Moving this outside of main_thread_only() removes the thread check. […]

      Done (Move this back to main_thread_onlly())

  • File third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.cc:

    • I wonder if this, DispatchOnTaskCompletionCallbacks, and |on_task_completion_callbacks_| should be d […]

      Done

  • File third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc:

    • MainThreadSchedulerImpl runs after-task callbacks after the microtask checkpoint and recording the t […]

      Done

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

Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
Gerrit-Change-Number: 3233543
Gerrit-PatchSet: 4
Gerrit-Owner: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
Gerrit-Reviewer: Hajime Hoshi <hajim...@chromium.org>
Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
Gerrit-Attention: Scott Haseley <shas...@chromium.org>
Gerrit-Comment-Date: Mon, 25 Oct 2021 08:11:19 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Scott Haseley <shas...@chromium.org>
Gerrit-MessageType: comment

Hajime Hoshi (Gerrit)

unread,
Oct 25, 2021, 5:03:35 AM10/25/21
to blink-...@chromium.org, chikamu...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, Scott Haseley, Alexander Timin, Chromium LUCI CQ, chromium...@chromium.org

Attention is currently required from: Scott Haseley.

Patch set 8:Commit-Queue +1

View Change

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

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
    Gerrit-Change-Number: 3233543
    Gerrit-PatchSet: 8
    Gerrit-Owner: Hajime Hoshi <hajim...@chromium.org>
    Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
    Gerrit-Reviewer: Hajime Hoshi <hajim...@chromium.org>
    Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
    Gerrit-Attention: Scott Haseley <shas...@chromium.org>
    Gerrit-Comment-Date: Mon, 25 Oct 2021 09:03:24 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    Gerrit-MessageType: comment

    Scott Haseley (Gerrit)

    unread,
    Oct 25, 2021, 5:53:43 PM10/25/21
    to Hajime Hoshi, blink-...@chromium.org, chikamu...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, Alexander Timin, Chromium LUCI CQ, chromium...@chromium.org

    Attention is currently required from: Hajime Hoshi.

    Patch set 8:Code-Review +1

    View Change

    2 comments:

    • Patchset:

    • File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h:

      • Patch Set #8, Line 471: WTF::Vector<base::OnceClosure>& GetOnTaskCompletionCallbacks() override;

        nit: should this be protected to match parent class and non_main_thread_scheduler_impl? Not sure if this is intentional. I don't think it matters in practice because this class isn't subclassed.

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

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
    Gerrit-Change-Number: 3233543
    Gerrit-PatchSet: 8
    Gerrit-Owner: Hajime Hoshi <hajim...@chromium.org>
    Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
    Gerrit-Reviewer: Hajime Hoshi <hajim...@chromium.org>
    Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
    Gerrit-Attention: Hajime Hoshi <hajim...@chromium.org>
    Gerrit-Comment-Date: Mon, 25 Oct 2021 21:53:35 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Gerrit-MessageType: comment

    Hajime Hoshi (Gerrit)

    unread,
    Oct 26, 2021, 12:16:28 AM10/26/21
    to blink-...@chromium.org, chikamu...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, Scott Haseley, Alexander Timin, Chromium LUCI CQ, chromium...@chromium.org

    View Change

    1 comment:

    • File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h:

      • nit: should this be protected to match parent class and non_main_thread_scheduler_impl? Not sure if […]

        Done

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

    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
    Gerrit-Change-Number: 3233543
    Gerrit-PatchSet: 8
    Gerrit-Owner: Hajime Hoshi <hajim...@chromium.org>
    Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
    Gerrit-Reviewer: Hajime Hoshi <hajim...@chromium.org>
    Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
    Gerrit-Comment-Date: Tue, 26 Oct 2021 04:16:18 +0000

    Hajime Hoshi (Gerrit)

    unread,
    Oct 28, 2021, 4:41:38 AM10/28/21
    to blink-...@chromium.org, chikamu...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, Scott Haseley, Alexander Timin, Chromium LUCI CQ, chromium...@chromium.org

    Attention is currently required from: Hajime Hoshi.

    Patch set 14:Commit-Queue +2

    View Change

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

      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
      Gerrit-Change-Number: 3233543
      Gerrit-PatchSet: 14
      Gerrit-Owner: Hajime Hoshi <hajim...@chromium.org>
      Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
      Gerrit-Reviewer: Hajime Hoshi <hajim...@chromium.org>
      Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
      Gerrit-Attention: Hajime Hoshi <hajim...@chromium.org>
      Gerrit-Comment-Date: Thu, 28 Oct 2021 08:41:26 +0000

      Chromium LUCI CQ (Gerrit)

      unread,
      Oct 28, 2021, 5:56:02 AM10/28/21
      to Hajime Hoshi, blink-...@chromium.org, chikamu...@chromium.org, kinuko...@chromium.org, scheduler-...@chromium.org, Scott Haseley, Alexander Timin, chromium...@chromium.org

      Chromium LUCI CQ submitted this change.

      View Change



      8 is the latest approved patch-set.
      The change was submitted with unreviewed changes in the following files:

      ```
      The name of the file: third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
      Insertions: 3, Deletions: 3.

      The diff is too large to show. Please review the diff.
      ```

      Approvals: Scott Haseley: Looks good to me Hajime Hoshi: Commit
      Enable to call ExecuteAfterCurrentTask for NonMainThreadSchedulerImpl

      This CL enables NonMainThreadSchedulerImpl to batch notifying feature
      usages from workers, like what FrameSchedulerImpl and
      MainThreadSchedulerImpl do.

      This is a preparation to detect features not only from a frame but also
      a dedicated worker.

      Design Doc: https://docs.google.com/document/d/1CJfDNqA2tEp_dmxK5kaBHHqGjx7cK2_jhTpsCwSCa3A/edit?usp=sharing

      Bug: 1146955
      Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
      Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3233543
      Commit-Queue: Hajime Hoshi <hajim...@chromium.org>
      Reviewed-by: Scott Haseley <shas...@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#935808}
      ---
      M third_party/blink/renderer/platform/scheduler/BUILD.gn
      M third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.cc
      A third_party/blink/renderer/platform/scheduler/common/thread_scheduler_impl.cc

      M third_party/blink/renderer/platform/scheduler/common/thread_scheduler_impl.h
      M third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
      M third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
      M third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.cc
      M third_party/blink/renderer/platform/scheduler/worker/compositor_thread_scheduler.cc
      M third_party/blink/renderer/platform/scheduler/worker/non_main_thread_scheduler_impl.h
      9 files changed, 81 insertions(+), 22 deletions(-)


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

      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I8fea584e5924de26ef8f10e5905a38dbd650ce10
      Gerrit-Change-Number: 3233543
      Gerrit-PatchSet: 15
      Gerrit-Owner: Hajime Hoshi <hajim...@chromium.org>
      Gerrit-Reviewer: Alexander Timin <alt...@chromium.org>
      Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
      Gerrit-Reviewer: Hajime Hoshi <hajim...@chromium.org>
      Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
      Gerrit-MessageType: merged
      Reply all
      Reply to author
      Forward
      0 new messages