New issue
Advanced search Search tips

Issue 866868 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac , Fuchsia
Pri: 2
Type: Feature

Blocked on:
issue 891637

Blocking:
issue 865098



Sign in to add a comment

Script streaming should use the task scheduler instead of a dedicated thread

Project Member Reported by leszeks@chromium.org, Jul 24

Issue description

Script streaming currently uses a dedicated script streamer thread to perform the streaming. This means that only one script can be streaming parsed/compiled at a time, even when that script is blocked waiting for network input.

Instead of using this dedicated thread, we should use the existing scheduler infrastructure, to allow the scheduler to spin up new threads for new scripts, if necessary, when the streamer is blocked waiting for data.
 
Blocking: 865098
Cc: nikunjb@chromium.org
+nikunjb@chromium.org as metrics ambassador, since I'll want to Finch this.
Project Member

Comment 3 by bugdroid1@chromium.org, Jul 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3b4d46e39cb5daa0b48242dc30f4c6c910cee25e

commit 3b4d46e39cb5daa0b48242dc30f4c6c910cee25e
Author: Leszek Swirski <leszeks@chromium.org>
Date: Tue Jul 24 15:09:59 2018

[blink] Use scheduler for script streaming

Add a new feature flag, ScheduledScriptStreaming, which makes the script
streamer use the task scheduler for streaming tasks, rather than using a
dedicated ScriptStreamerThread.

Bug: chromium:865098
Bug: chromium:866868
Change-Id: I05ca411d8d5187c4b5180011ebce2a603e3944fe
Reviewed-on: https://chromium-review.googlesource.com/1145386
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577543}
[modify] https://crrev.com/3b4d46e39cb5daa0b48242dc30f4c6c910cee25e/content/child/runtime_features.cc
[modify] https://crrev.com/3b4d46e39cb5daa0b48242dc30f4c6c910cee25e/content/public/common/content_features.cc
[modify] https://crrev.com/3b4d46e39cb5daa0b48242dc30f4c6c910cee25e/content/public/common/content_features.h
[modify] https://crrev.com/3b4d46e39cb5daa0b48242dc30f4c6c910cee25e/third_party/blink/public/platform/web_runtime_features.h
[modify] https://crrev.com/3b4d46e39cb5daa0b48242dc30f4c6c910cee25e/third_party/blink/renderer/bindings/core/v8/script_streamer.cc
[modify] https://crrev.com/3b4d46e39cb5daa0b48242dc30f4c6c910cee25e/third_party/blink/renderer/bindings/core/v8/script_streamer_test.cc
[modify] https://crrev.com/3b4d46e39cb5daa0b48242dc30f4c6c910cee25e/third_party/blink/renderer/bindings/core/v8/script_streamer_thread.cc
[modify] https://crrev.com/3b4d46e39cb5daa0b48242dc30f4c6c910cee25e/third_party/blink/renderer/platform/exported/web_runtime_features.cc
[modify] https://crrev.com/3b4d46e39cb5daa0b48242dc30f4c6c910cee25e/third_party/blink/renderer/platform/runtime_enabled_features.json5

Status: Assigned (was: Untriaged)
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5912b768395ab595274c932bd653f9e47a93ec1c

commit 5912b768395ab595274c932bd653f9e47a93ec1c
Author: Leszek Swirski <leszeks@chromium.org>
Date: Thu Aug 16 14:56:13 2018

[v8] Re-post non-blocking ScriptStreamer tasks

Posted blocking ScriptStreamer tasks can end up in a queue, and have
their Resource complete loading before the task even starts. When this
happens, these tasks will no longer block on network input, but they
will still be posted to the blocking task runner, which does not spin up
new threads if the running task is not blocked. When there are a lot of
small functions posted for streaming, this results in a slightly
paradoxical starvation, where the blocking task runner is processing
lots of no-longer-blocking tasks all in one thread, as it has no reason
to spin up new threads.

To avoid this, if a streaming task isn't started before the resource
finishes loading, we can cancel this posted task, and instead post a new
non-blocking task to the non-blocking thread pool. This frees up the
blocking task runner to process only blocking tasks (and thus allows it
to spin up new threads for them).

Bug: chromium:865098
Bug: chromium:866868
Change-Id: Iceb282582781109ade233366d1009c3be50db3a5
Reviewed-on: https://chromium-review.googlesource.com/1174380
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583649}
[modify] https://crrev.com/5912b768395ab595274c932bd653f9e47a93ec1c/third_party/blink/renderer/bindings/core/v8/script_streamer.cc
[modify] https://crrev.com/5912b768395ab595274c932bd653f9e47a93ec1c/third_party/blink/renderer/bindings/core/v8/script_streamer.h

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/63ecc7f1995431a135519633994c45195334bd48

commit 63ecc7f1995431a135519633994c45195334bd48
Author: Leszek Swirski <leszeks@chromium.org>
Date: Fri Aug 17 08:55:59 2018

Revert "[v8] Re-post non-blocking ScriptStreamer tasks"

This reverts commit 5912b768395ab595274c932bd653f9e47a93ec1c.

Reason for revert: Seems to cause Scanner crashes

Original change's description:
> [v8] Re-post non-blocking ScriptStreamer tasks
> 
> Posted blocking ScriptStreamer tasks can end up in a queue, and have
> their Resource complete loading before the task even starts. When this
> happens, these tasks will no longer block on network input, but they
> will still be posted to the blocking task runner, which does not spin up
> new threads if the running task is not blocked. When there are a lot of
> small functions posted for streaming, this results in a slightly
> paradoxical starvation, where the blocking task runner is processing
> lots of no-longer-blocking tasks all in one thread, as it has no reason
> to spin up new threads.
> 
> To avoid this, if a streaming task isn't started before the resource
> finishes loading, we can cancel this posted task, and instead post a new
> non-blocking task to the non-blocking thread pool. This frees up the
> blocking task runner to process only blocking tasks (and thus allows it
> to spin up new threads for them).
> 
> Bug: chromium:865098
> Bug: chromium:866868
> Change-Id: Iceb282582781109ade233366d1009c3be50db3a5
> Reviewed-on: https://chromium-review.googlesource.com/1174380
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Alexander Timin <altimin@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Reviewed-by: Gabriel Charette <gab@chromium.org>
> Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#583649}

TBR=skyostil@google.com,gab@chromium.org,rmcilroy@chromium.org,haraken@chromium.org,kouhei@chromium.org,skyostil@chromium.org,altimin@chromium.org,leszeks@chromium.org

Change-Id: Iffbab7a8994d12ffce53c6b5b76d19f4db79df0b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:865098, chromium:866868, chromium:875162
Reviewed-on: https://chromium-review.googlesource.com/1179641
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583995}
[modify] https://crrev.com/63ecc7f1995431a135519633994c45195334bd48/third_party/blink/renderer/bindings/core/v8/script_streamer.cc
[modify] https://crrev.com/63ecc7f1995431a135519633994c45195334bd48/third_party/blink/renderer/bindings/core/v8/script_streamer.h

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/04bab18044ca5689ac72a05883051d23b9f354df

commit 04bab18044ca5689ac72a05883051d23b9f354df
Author: Leszek Swirski <leszeks@chromium.org>
Date: Fri Aug 17 12:47:51 2018

[v8] Re-post non-blocking ScriptStreamer tasks (reland)

Posted blocking ScriptStreamer tasks can end up in a queue, and have
their Resource complete loading before the task even starts. When this
happens, these tasks will no longer block on network input, but they
will still be posted to the blocking task runner, which does not spin up
new threads if the running task is not blocked. When there are a lot of
small functions posted for streaming, this results in a slightly
paradoxical starvation, where the blocking task runner is processing
lots of no-longer-blocking tasks all in one thread, as it has no reason
to spin up new threads.

To avoid this, if a streaming task isn't started before the resource
finishes loading, we can cancel this posted task, and instead post a new
non-blocking task to the non-blocking thread pool. This frees up the
blocking task runner to process only blocking tasks (and thus allows it
to spin up new threads for them).

TBR=kouhei@chromium.org

Bug: chromium:865098
Bug: chromium:866868
Change-Id: I930b10d23fd538b3529ab3a31f6caba13a8661fb
Reviewed-on: https://chromium-review.googlesource.com/1179744
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584032}
[modify] https://crrev.com/04bab18044ca5689ac72a05883051d23b9f354df/third_party/blink/renderer/bindings/core/v8/script_streamer.cc
[modify] https://crrev.com/04bab18044ca5689ac72a05883051d23b9f354df/third_party/blink/renderer/bindings/core/v8/script_streamer.h

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 17

Labels: merge-merged-3525
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2bccb734e64c0e701ee8c795fa11fa2a040bf6c3

commit 2bccb734e64c0e701ee8c795fa11fa2a040bf6c3
Author: Leszek Swirski <leszeks@chromium.org>
Date: Fri Aug 17 13:50:56 2018

Revert "[v8] Re-post non-blocking ScriptStreamer tasks"

This reverts commit 5912b768395ab595274c932bd653f9e47a93ec1c.

Reason for revert: Seems to cause Scanner crashes

Original change's description:
> [v8] Re-post non-blocking ScriptStreamer tasks
> 
> Posted blocking ScriptStreamer tasks can end up in a queue, and have
> their Resource complete loading before the task even starts. When this
> happens, these tasks will no longer block on network input, but they
> will still be posted to the blocking task runner, which does not spin up
> new threads if the running task is not blocked. When there are a lot of
> small functions posted for streaming, this results in a slightly
> paradoxical starvation, where the blocking task runner is processing
> lots of no-longer-blocking tasks all in one thread, as it has no reason
> to spin up new threads.
> 
> To avoid this, if a streaming task isn't started before the resource
> finishes loading, we can cancel this posted task, and instead post a new
> non-blocking task to the non-blocking thread pool. This frees up the
> blocking task runner to process only blocking tasks (and thus allows it
> to spin up new threads for them).
> 
> Bug: chromium:865098
> Bug: chromium:866868
> Change-Id: Iceb282582781109ade233366d1009c3be50db3a5
> Reviewed-on: https://chromium-review.googlesource.com/1174380
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Alexander Timin <altimin@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Reviewed-by: Gabriel Charette <gab@chromium.org>
> Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#583649}

TBR=skyostil@google.com,gab@chromium.org,rmcilroy@chromium.org,haraken@chromium.org,kouhei@chromium.org,skyostil@chromium.org,altimin@chromium.org,leszeks@chromium.org

Change-Id: Iffbab7a8994d12ffce53c6b5b76d19f4db79df0b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:865098, chromium:866868, chromium:875162
Reviewed-on: https://chromium-review.googlesource.com/1179641
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#583995}(cherry picked from commit 63ecc7f1995431a135519633994c45195334bd48)
Reviewed-on: https://chromium-review.googlesource.com/1179841
Cr-Commit-Position: refs/branch-heads/3525@{#3}
Cr-Branched-From: f7f1772a44a00254f19f4ddae1f8890ef766e1e3-refs/heads/master@{#583911}
[modify] https://crrev.com/2bccb734e64c0e701ee8c795fa11fa2a040bf6c3/third_party/blink/renderer/bindings/core/v8/script_streamer.cc
[modify] https://crrev.com/2bccb734e64c0e701ee8c795fa11fa2a040bf6c3/third_party/blink/renderer/bindings/core/v8/script_streamer.h

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/35a8f0de5a522de005b33c48f7937f56f88f753b

commit 35a8f0de5a522de005b33c48f7937f56f88f753b
Author: Ross McIlroy <rmcilroy@chromium.org>
Date: Thu Sep 06 20:22:41 2018

Revert "[v8] Re-post non-blocking ScriptStreamer tasks (reland)"

This reverts commit 04bab18044ca5689ac72a05883051d23b9f354df.

Reason for revert: Failing DCHECKs by blocking on non-blocking task.
BUG:878750

Original change's description:
> [v8] Re-post non-blocking ScriptStreamer tasks (reland)
> 
> Posted blocking ScriptStreamer tasks can end up in a queue, and have
> their Resource complete loading before the task even starts. When this
> happens, these tasks will no longer block on network input, but they
> will still be posted to the blocking task runner, which does not spin up
> new threads if the running task is not blocked. When there are a lot of
> small functions posted for streaming, this results in a slightly
> paradoxical starvation, where the blocking task runner is processing
> lots of no-longer-blocking tasks all in one thread, as it has no reason
> to spin up new threads.
> 
> To avoid this, if a streaming task isn't started before the resource
> finishes loading, we can cancel this posted task, and instead post a new
> non-blocking task to the non-blocking thread pool. This frees up the
> blocking task runner to process only blocking tasks (and thus allows it
> to spin up new threads for them).
> 
> TBR=kouhei@chromium.org
> 
> Bug: chromium:865098
> Bug: chromium:866868
> Change-Id: I930b10d23fd538b3529ab3a31f6caba13a8661fb
> Reviewed-on: https://chromium-review.googlesource.com/1179744
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#584032}

TBR=rmcilroy@chromium.org,haraken@chromium.org,kouhei@chromium.org,leszeks@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:865098, chromium:866868
Change-Id: I8c26832b131cf8997c304422eb0324bb0770b947
Reviewed-on: https://chromium-review.googlesource.com/1211582
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589272}
[modify] https://crrev.com/35a8f0de5a522de005b33c48f7937f56f88f753b/third_party/blink/renderer/bindings/core/v8/script_streamer.cc
[modify] https://crrev.com/35a8f0de5a522de005b33c48f7937f56f88f753b/third_party/blink/renderer/bindings/core/v8/script_streamer.h

Project Member

Comment 10 by bugdroid1@chromium.org, Sep 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/04d3c8a8192852302b61d3b4ca532d7920030677

commit 04d3c8a8192852302b61d3b4ca532d7920030677
Author: Leszek Swirski <leszeks@chromium.org>
Date: Mon Sep 10 18:18:42 2018

[v8] Re-post non-blocking ScriptStreamer tasks (reland^2)

Posted blocking ScriptStreamer tasks can end up in a queue, and have
their Resource complete loading before the task even starts. When this
happens, these tasks will no longer block on network input, but they
will still be posted to the blocking task runner, which does not spin up
new threads if the running task is not blocked. When there are a lot of
small functions posted for streaming, this results in a slightly
paradoxical starvation, where the blocking task runner is processing
lots of no-longer-blocking tasks all in one thread, as it has no reason
to spin up new threads.

To avoid this, if a streaming task isn't started before the resource
finishes loading, we can cancel this posted task, and instead post a new
non-blocking task to the non-blocking thread pool. This frees up the
blocking task runner to process only blocking tasks (and thus allows it
to spin up new threads for them).

TBR=kouhei@chromium.org

Bug: chromium:865098
Bug: chromium:866868
Change-Id: Ia955fb7a5fd7a6dfdac6a21d8d866b1d1699054d
Reviewed-on: https://chromium-review.googlesource.com/1216963
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589984}
[modify] https://crrev.com/04d3c8a8192852302b61d3b4ca532d7920030677/third_party/blink/renderer/bindings/core/v8/script_streamer.cc
[modify] https://crrev.com/04d3c8a8192852302b61d3b4ca532d7920030677/third_party/blink/renderer/bindings/core/v8/script_streamer.h

Project Member

Comment 11 by bugdroid1@chromium.org, Sep 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7eb2bb6769b38736fc75a12c15563c4a69f1a61f

commit 7eb2bb6769b38736fc75a12c15563c4a69f1a61f
Author: Leszek Swirski <leszeks@chromium.org>
Date: Mon Sep 17 15:26:00 2018

[config] Enable scheduled script streaming field trial

Start a field trial for scheduled script streaming, where script
streaming uses the task scheduler rather than a dedicated streaming
thread.

Enabling this flag will:

  * Post script streaming tasks as MayBlock using PostTask
  * Re-post those tasks as non-MayBlock if the resource finishes
    loading before the task starts
  * Remove the small script heuristic for streaming

Bug: chromium:866868
Bug: chromium:865098
Change-Id: Id12d052623b5ebf9a1924cc2065807fede718014
Reviewed-on: https://chromium-review.googlesource.com/1226604
Reviewed-by: Robert Kaplow <rkaplow@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591681}
[modify] https://crrev.com/7eb2bb6769b38736fc75a12c15563c4a69f1a61f/testing/variations/fieldtrial_testing_config.json

Project Member

Comment 12 by bugdroid1@chromium.org, Sep 22

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/516840902587453313f53e6b0b45442bebc5b8e8

commit 516840902587453313f53e6b0b45442bebc5b8e8
Author: Leszek Swirski <leszeks@chromium.org>
Date: Sat Sep 22 17:57:12 2018

[blink] Re-enable small script streaming heuristic

Currently, the small script streaming disabled heuristic is disabled for
the scheduled script streaming flag. Remove this for now, so that we can
test the scheduling perf impact independently from heuristic changes.

Bug: chromium:865098
Bug: chromium:866868
Change-Id: Ib3974ebe6d28dadb8421e75fd13801e0d916de24
Reviewed-on: https://chromium-review.googlesource.com/1238435
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593444}
[modify] https://crrev.com/516840902587453313f53e6b0b45442bebc5b8e8/third_party/blink/renderer/bindings/core/v8/script_streamer.cc

Blockedon: 891637
Project Member

Comment 14 by bugdroid1@chromium.org, Oct 23

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/42aaff47209c95a505823b0834bdfe1d337ee1ff

commit 42aaff47209c95a505823b0834bdfe1d337ee1ff
Author: Leszek Swirski <leszeks@chromium.org>
Date: Tue Oct 23 12:32:29 2018

[blink] Remove work stealing

Work stealing is deprecated by script streaming on the task scheduler,
and broken anyway by ScriptResource-controlled script streaming.

Bug: 557466
Bug: 761977
Bug: 865098
Bug: 866868
Change-Id: Ie01d239b052ad7499e9884687bf95376a5cf6f9a
Reviewed-on: https://chromium-review.googlesource.com/c/1258168
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Reviewed-by: Hiroshige Hayashizaki <hiroshige@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601921}
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/content/child/runtime_features.cc
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/content/public/common/content_features.cc
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/content/public/common/content_features.h
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/testing/variations/fieldtrial_testing_config.json
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/public/platform/web_runtime_features.h
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/bindings/core/v8/script_streamer_test.cc
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/core/loader/resource/script_resource.cc
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/core/loader/resource/script_resource.h
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/core/script/classic_pending_script.cc
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/core/script/classic_pending_script.h
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/core/script/html_parser_script_runner.cc
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/core/script/module_pending_script.h
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/core/script/pending_script.h
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/core/script/script_runner.cc
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/core/script/script_runner.h
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/core/script/script_runner_test.cc
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/platform/exported/web_runtime_features.cc
[modify] https://crrev.com/42aaff47209c95a505823b0834bdfe1d337ee1ff/third_party/blink/renderer/platform/runtime_enabled_features.json5

Project Member

Comment 15 by bugdroid1@chromium.org, Oct 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8

commit a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8
Author: Leszek Swirski <leszeks@chromium.org>
Date: Wed Oct 24 09:22:08 2018

Revert "[blink] Remove work stealing"

This reverts commit 42aaff47209c95a505823b0834bdfe1d337ee1ff.

Reason for revert: Blocking a revert for https://crbug.com/894796

Original change's description:
> [blink] Remove work stealing
> 
> Work stealing is deprecated by script streaming on the task scheduler,
> and broken anyway by ScriptResource-controlled script streaming.
> 
> Bug: 557466
> Bug: 761977
> Bug: 865098
> Bug: 866868
> Change-Id: Ie01d239b052ad7499e9884687bf95376a5cf6f9a
> Reviewed-on: https://chromium-review.googlesource.com/c/1258168
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
> Reviewed-by: Hiroshige Hayashizaki <hiroshige@chromium.org>
> Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#601921}

TBR=hiroshige@chromium.org,kouhei@chromium.org,vogelheim@chromium.org,leszeks@chromium.org,jochen@chromium.org

Change-Id: I0017e6580c01f5da934a6a13af0b8b01641c0c39
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 557466, 761977, 865098, 866868
Reviewed-on: https://chromium-review.googlesource.com/c/1297421
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602280}
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/content/child/runtime_features.cc
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/content/public/common/content_features.cc
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/content/public/common/content_features.h
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/testing/variations/fieldtrial_testing_config.json
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/public/platform/web_runtime_features.h
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/bindings/core/v8/script_streamer_test.cc
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/core/loader/resource/script_resource.cc
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/core/loader/resource/script_resource.h
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/core/script/classic_pending_script.cc
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/core/script/classic_pending_script.h
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/core/script/html_parser_script_runner.cc
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/core/script/module_pending_script.h
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/core/script/pending_script.h
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/core/script/script_runner.cc
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/core/script/script_runner.h
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/core/script/script_runner_test.cc
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/platform/exported/web_runtime_features.cc
[modify] https://crrev.com/a2cbe684522d3ded4e4694e0d16e9fcdc2bd15e8/third_party/blink/renderer/platform/runtime_enabled_features.json5

Project Member

Comment 16 by bugdroid1@chromium.org, Nov 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/984c9422cefcd565e6ccef6a7316ba2488107e93

commit 984c9422cefcd565e6ccef6a7316ba2488107e93
Author: Leszek Swirski <leszeks@chromium.org>
Date: Fri Nov 30 11:13:44 2018

[v8] Add Mac to script streaming field trial

Bug: 866868
Change-Id: I2c86c688d6d3df2a4506876724ba7c5fbc4290ad
Reviewed-on: https://chromium-review.googlesource.com/c/1347360
Reviewed-by: Steven Holte <holte@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612613}
[modify] https://crrev.com/984c9422cefcd565e6ccef6a7316ba2488107e93/testing/variations/fieldtrial_testing_config.json

This is looking good on 1% stable (improvements to TTI and FirstInputDelay on Windows https://uma.googleplex.com/p/chrome/variations?sid=5304dcc504aff920896202c1bee70bf7), so I'm going to go ahead and ship it. Subsequent improvements can be further work.
\o/ (since you might be missing Hannes' emojis).
Project Member

Comment 19 by bugdroid1@chromium.org, Jan 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07dcd2faf1b173f333f405d5cc34a2a9be8bf59f

commit 07dcd2faf1b173f333f405d5cc34a2a9be8bf59f
Author: Leszek Swirski <leszeks@chromium.org>
Date: Wed Jan 09 10:33:49 2019

[blink] Enabled scheduled script streaming by default

Bug: 866868
Change-Id: I0234c34b965ea6a5c583e053e24e2d209642343c
Reviewed-on: https://chromium-review.googlesource.com/c/1397631
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621106}
[modify] https://crrev.com/07dcd2faf1b173f333f405d5cc34a2a9be8bf59f/content/public/common/content_features.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Jan 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ea23db3659d3adab3a096c404e3193c841040079

commit ea23db3659d3adab3a096c404e3193c841040079
Author: Leszek Swirski <leszeks@chromium.org>
Date: Wed Jan 16 00:07:08 2019

Reland "[blink] Remove work stealing"

This is a reland of 42aaff47209c95a505823b0834bdfe1d337ee1ff.

This was reverted because it was blocking another revert. That revert
relanded and has stuck, so this can reland now too.

Original change's description:
> [blink] Remove work stealing
>
> Work stealing is deprecated by script streaming on the task scheduler,
> and broken anyway by ScriptResource-controlled script streaming.
>
> Bug: 557466
> Bug: 761977
> Bug: 865098
> Bug: 866868
> Change-Id: Ie01d239b052ad7499e9884687bf95376a5cf6f9a
> Reviewed-on: https://chromium-review.googlesource.com/c/1258168
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
> Reviewed-by: Hiroshige Hayashizaki <hiroshige@chromium.org>
> Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#601921}

TBR=hiroshige@chromium.org,kouhei@chromium.org,vogelheim@chromium.org,leszeks@chromium.org,jochen@chromium.org

Bug: 557466, 761977, 865098, 866868
Change-Id: Ibf7ac460f97bf7ab3699371c70076cb1e1d41d65
Reviewed-on: https://chromium-review.googlesource.com/c/1411601
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622896}
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/content/child/runtime_features.cc
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/content/public/common/content_features.cc
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/content/public/common/content_features.h
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/testing/variations/fieldtrial_testing_config.json
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/public/platform/web_runtime_features.h
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/bindings/core/v8/script_streamer_test.cc
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/core/loader/resource/script_resource.cc
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/core/loader/resource/script_resource.h
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/core/script/classic_pending_script.cc
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/core/script/classic_pending_script.h
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/core/script/html_parser_script_runner.cc
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/core/script/module_pending_script.h
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/core/script/pending_script.h
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/core/script/script_runner.cc
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/core/script/script_runner.h
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/core/script/script_runner_test.cc
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/platform/exported/web_runtime_features.cc
[modify] https://crrev.com/ea23db3659d3adab3a096c404e3193c841040079/third_party/blink/renderer/platform/runtime_enabled_features.json5

Sign in to add a comment