ADPF adaptive mode [chromium/src : main]

0 views
Skip to first unread message

Richard Townsend (Gerrit)

unread,
Dec 12, 2025, 3:00:11 PM12/12/25
to Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Yaron Friedman

Richard Townsend added 5 comments

Patchset-level comments
File-level comment, Patchset 9 (Latest):
Richard Townsend . resolved

PS9: doesn't unconditionally request efficiency - just for a short period. Improves semantics of the hint_session.

Achieves a good speedometer score. Also seems to work well when scrolling Naver.com. https://ui.perfetto.dev/#!/?s=ead14eb14dce841ee535df0afa4cff678349532f

Next patchset will remove the MainThreadSchedulerImpl loading detection (solely rely on WebContentsImpl to kick).

File cc/slim/layer_tree_impl.cc
Line 554, Patchset 3: out_frame.metadata.power_efficient_scheduling = power_efficient_scheduling_;
Richard Townsend . resolved

Unsure if this is required.

Richard Townsend

Done

File cc/trees/layer_tree_impl.cc
Line 880, Patchset 3: set_power_efficient_scheduling(commit_state.power_efficient_scheduling);
Richard Townsend . resolved

Trace this

Richard Townsend

Done

File components/viz/service/main/viz_compositor_thread_runner_impl.cc
Line 316, Patchset 3:void VizCompositorThreadRunnerImpl::SetPowerEfficientScheduling(bool enabled) {
Richard Townsend . resolved

Irrelevant

Richard Townsend

Not irrelevant!

File content/browser/web_contents/web_contents_impl.cc
Line 7335, Patchset 7 (Parent): // navigations only. This a trade off between latency and power - we don't
// want to do it for every navigation.
if (navigation_handle->IsInMainFrame()) {
Yaron Friedman . unresolved

I guess the argument is that you're saving much more power so we should do it everywhere? We can probably iterate a bunch here on heuristics but can start wtih this

Richard Townsend

I think we can actually save a bit more power:

  • Boost is requested
  • If we miss the frame deadline => actually boost

This should strike a good balance between scroll smoothness and energy savings. It seems that loadline doesn't move much under the always efficient mode, so this is basically required only for Speeedometer.

Richard Townsend

Draft implementation in next patchset.

Open in Gerrit

Related details

Attention is currently required from:
  • Yaron Friedman
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
Gerrit-Change-Number: 7238073
Gerrit-PatchSet: 9
Gerrit-Owner: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
Gerrit-CC: Eric Seckler <esec...@chromium.org>
Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
Gerrit-Comment-Date: Fri, 12 Dec 2025 20:00:02 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Richard Townsend <ritow...@google.com>
Comment-In-Reply-To: Yaron Friedman <yfri...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Richard Townsend (Gerrit)

unread,
Jan 7, 2026, 5:20:01 PMJan 7
to Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Yaron Friedman

Richard Townsend added 3 comments

Commit Message
Line 15, Patchset 10 (Latest):* Latest version requests a boost, fulfills the boost if a frame fails
Richard Townsend . unresolved

This is no longer true

File content/browser/web_contents/web_contents_impl.cc
Line 7335, Patchset 7 (Parent): // navigations only. This a trade off between latency and power - we don't
// want to do it for every navigation.
if (navigation_handle->IsInMainFrame()) {
Yaron Friedman . resolved

I guess the argument is that you're saving much more power so we should do it everywhere? We can probably iterate a bunch here on heuristics but can start wtih this

Richard Townsend

I think we can actually save a bit more power:

  • Boost is requested
  • If we miss the frame deadline => actually boost

This should strike a good balance between scroll smoothness and energy savings. It seems that loadline doesn't move much under the always efficient mode, so this is basically required only for Speeedometer.

Richard Townsend

Draft implementation in next patchset.

Richard Townsend

OK, the "miss the frame deadline => actually boost" implementation is perceptibly less smooth, so will leave as-is for now.

File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
Line 1442, Patchset 7: if (!performance_scenarios::CurrentScenariosMatch(
Yaron Friedman . resolved

I guess this is global state so it would know if compositor was handling a fast-path scroll and not visible (yet) on main?

Richard Townsend

kGlobal was to try and resolve some bugginess, but it seems that this policy inconsistently detects whether something is loading or not - sometimes it works really well, sometimes it does not, hence the double-kick from WebContentsImpl. I think we me might be able to drop it back to single-kick.

Richard Townsend

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Yaron Friedman
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
Gerrit-Change-Number: 7238073
Gerrit-PatchSet: 10
Gerrit-Owner: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
Gerrit-CC: Eric Seckler <esec...@chromium.org>
Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
Gerrit-Comment-Date: Wed, 07 Jan 2026 22:19:57 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Yaron Friedman (Gerrit)

unread,
Jan 9, 2026, 1:29:18 PMJan 9
to Richard Townsend, Chromium LUCI CQ, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Richard Townsend

Yaron Friedman added 1 comment

Patchset-level comments
File-level comment, Patchset 11 (Latest):
Yaron Friedman . resolved

is this ready for review?

Open in Gerrit

Related details

Attention is currently required from:
  • Richard Townsend
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
Gerrit-Change-Number: 7238073
Gerrit-PatchSet: 11
Gerrit-Owner: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
Gerrit-CC: Eric Seckler <esec...@chromium.org>
Gerrit-Attention: Richard Townsend <ritow...@google.com>
Gerrit-Comment-Date: Fri, 09 Jan 2026 18:29:13 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Richard Townsend (Gerrit)

unread,
Jan 9, 2026, 2:09:45 PMJan 9
to Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Yaron Friedman

Richard Townsend voted and added 1 comment

Votes added by Richard Townsend

Commit-Queue+1

1 comment

Patchset-level comments
Yaron Friedman . resolved

is this ready for review?

Richard Townsend

Yep, just manually validated it and it seems to be doing the right thing.

Open in Gerrit

Related details

Attention is currently required from:
  • Yaron Friedman
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
Gerrit-Change-Number: 7238073
Gerrit-PatchSet: 11
Gerrit-Owner: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
Gerrit-CC: Eric Seckler <esec...@chromium.org>
Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
Gerrit-Comment-Date: Fri, 09 Jan 2026 19:09:38 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: Yaron Friedman <yfri...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Richard Townsend (Gerrit)

unread,
Jan 9, 2026, 2:31:48 PMJan 9
to Igor Kraskevich, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Igor Kraskevich and Yaron Friedman

Richard Townsend added 1 comment

Patchset-level comments
Richard Townsend . resolved

Hi Igor, could you PTAL at this from the ADPF perspective?

Best
Richard

Open in Gerrit

Related details

Attention is currently required from:
  • Igor Kraskevich
  • Yaron Friedman
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
Gerrit-Change-Number: 7238073
Gerrit-PatchSet: 11
Gerrit-Owner: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
Gerrit-CC: Eric Seckler <esec...@chromium.org>
Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
Gerrit-Attention: Igor Kraskevich <krask...@google.com>
Gerrit-Comment-Date: Fri, 09 Jan 2026 19:31:42 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Richard Townsend (Gerrit)

unread,
Jan 9, 2026, 2:32:25 PMJan 9
to Jonathan Ross, Igor Kraskevich, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Igor Kraskevich, Jonathan Ross and Yaron Friedman

Richard Townsend added 1 comment

Patchset-level comments
Richard Townsend . resolved

Hi Jon, could you PTAL at this power change from a viz/ + cc/ perspective?

Best
Richard

Open in Gerrit

Related details

Attention is currently required from:
  • Igor Kraskevich
  • Jonathan Ross
  • Yaron Friedman
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
Gerrit-Change-Number: 7238073
Gerrit-PatchSet: 11
Gerrit-Owner: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
Gerrit-CC: Eric Seckler <esec...@chromium.org>
Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
Gerrit-Attention: Igor Kraskevich <krask...@google.com>
Gerrit-Comment-Date: Fri, 09 Jan 2026 19:32:19 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Yaron Friedman (Gerrit)

unread,
Jan 9, 2026, 2:36:53 PMJan 9
to Richard Townsend, Jonathan Ross, Igor Kraskevich, Chromium LUCI CQ, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Igor Kraskevich, Jonathan Ross and Richard Townsend

Yaron Friedman added 5 comments

Patchset-level comments
Yaron Friedman . resolved

just some minor commenst. probably best to have Igor/Jon look?

File cc/trees/layer_tree_host.h
Line 678, Patchset 11 (Latest): RequestForceSendMetadata();
Yaron Friedman . unresolved

I thought this form of metadata was renderer->browser. Is it needed?
The rest is just side-car on the messages that would already be pushed renderer->viz so no force needed?

File components/viz/service/performance_hint/hint_session.cc
Line 326, Patchset 11 (Latest): is_page_load ? base::Seconds(5) : base::Seconds(1);
Yaron Friedman . unresolved

make field trial params?

File content/browser/web_contents/web_contents_impl.cc
Line 7359, Patchset 11 (Latest): // Notify the OS that the workload is about to increase for main frame
Yaron Friedman . unresolved

update and flag guard

File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
Line 1545, Patchset 11 (Latest): // We only need to ask a single widget scheduler because (at the moment)
Yaron Friedman . unresolved

but you're asking all of them? i don't understand the comment

Open in Gerrit

Related details

Attention is currently required from:
  • Igor Kraskevich
  • Jonathan Ross
  • Richard Townsend
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
Gerrit-Change-Number: 7238073
Gerrit-PatchSet: 11
Gerrit-Owner: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
Gerrit-CC: Eric Seckler <esec...@chromium.org>
Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
Gerrit-Attention: Richard Townsend <ritow...@google.com>
Gerrit-Attention: Igor Kraskevich <krask...@google.com>
Gerrit-Comment-Date: Fri, 09 Jan 2026 19:36:47 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Yaron Friedman (Gerrit)

unread,
Jan 9, 2026, 2:37:22 PMJan 9
to Richard Townsend, Jonathan Ross, Igor Kraskevich, Chromium LUCI CQ, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Igor Kraskevich, Jonathan Ross and Richard Townsend

Yaron Friedman added 1 comment

Patchset-level comments
Yaron Friedman . resolved

just some minor commenst. probably best to have Igor/Jon look?

Yaron Friedman

lol, glad we thought of the same reviewers 😊

Gerrit-Comment-Date: Fri, 09 Jan 2026 19:37:16 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Yaron Friedman <yfri...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Richard Townsend (Gerrit)

unread,
Jan 9, 2026, 3:27:50 PMJan 9
to Jonathan Ross, Igor Kraskevich, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Igor Kraskevich, Jonathan Ross and Yaron Friedman

Richard Townsend added 2 comments

File cc/trees/layer_tree_host.h
Line 678, Patchset 11 (Latest): RequestForceSendMetadata();
Yaron Friedman . unresolved

I thought this form of metadata was renderer->browser. Is it needed?
The rest is just side-car on the messages that would already be pushed renderer->viz so no force needed?

Richard Townsend

It's renderer to GPU process. I can try removing this and check it still works.

File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
Line 1545, Patchset 11 (Latest): // We only need to ask a single widget scheduler because (at the moment)
Yaron Friedman . unresolved

but you're asking all of them? i don't understand the comment

Richard Townsend

Yeah, we only need to ask a single one, but the `for (..) { ws -> RequestSchedulerBoost(); break; }` pattern is blocked by the Blink style plugin. Ultimately, they all set the the same flag somewhere in `cc`, and usually there seems to be only one WidgetScheduler.

Open in Gerrit

Related details

Attention is currently required from:
  • Igor Kraskevich
  • Jonathan Ross
  • Yaron Friedman
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
Gerrit-Change-Number: 7238073
Gerrit-PatchSet: 11
Gerrit-Owner: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
Gerrit-CC: Eric Seckler <esec...@chromium.org>
Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
Gerrit-Attention: Igor Kraskevich <krask...@google.com>
Gerrit-Comment-Date: Fri, 09 Jan 2026 20:27:45 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Igor Kraskevich (Gerrit)

unread,
Jan 12, 2026, 6:04:27 AMJan 12
to Richard Townsend, Jonathan Ross, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Jonathan Ross, Richard Townsend and Yaron Friedman

Igor Kraskevich added 7 comments

Patchset-level comments
Igor Kraskevich . unresolved

High level question - have we tested this for:
1. Speedometer 3 (I presume yes looking at the patch description/comments etc.)
2. Loadline (https://chromium.googlesource.com/crossbench/+/refs/heads/main/config/benchmark/loadline2/, https://chromium.googlesource.com/crossbench/+/refs/heads/main/config/benchmark/loadline)

If so, is there any impact on the scores?

Unfortunately we don't have any reliable local benchmarks for interactions or scrolling, the best we can do is grab some local traces from live websites and check that the new signal is doing something reasonable - we'll have to wait until we get field data to get any trustworthy numbers.

File components/viz/service/performance_hint/hint_session.cc
Line 288, Patchset 11 (Latest): result == 0, "session", (void*)this);
Igor Kraskevich . unresolved

Why do we need this? Or more like - how is this supposed to be used?

Line 318, Patchset 11 (Latest): const bool efficiency_preferred,
const bool is_page_load) {
Igor Kraskevich . unresolved

Maybe make this an enum? Like `{ kEfficiency, kPageLoad, kUserInput }`

The pair of bools allows passing combinations like "prefer efficiency + is page load" - I don't think we intend to use those?

Line 324, Patchset 11 (Latest): // Default behaviour is 5 seconds for a page load, and 1 for a scroll.
Igor Kraskevich . unresolved

What about interactions? If a boost triggers only for page loads and scrolls, I'd expect a big INP regression.

P.S. Looking at the code below it's not just scroll but rather any user input. In which case let's just update the comment.

File content/browser/web_contents/web_contents_impl.cc
Line 7359, Patchset 11 (Latest): // Notify the OS that the workload is about to increase for main frame
Yaron Friedman . unresolved

update and flag guard

Igor Kraskevich

+1, this shouldn't be an unconditional change.

The NotifyWorkloadIncrease logic was originally implemented for sending CPU_LOAD_UP hint on page load - https://chromium-review.googlesource.com/c/chromium/src/+/7062031, b/443653027. It is intentionally limited to main frames only to balance perf boost vs power drain.

We will run a field experiment for that one after the next Android release reaches most Pixel users.

As an option we could also plumb the information "is this page load for main frame" through NotifyWorkloadIncrease to viz and decide how to boost inside the hint session.

File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
Line 1533, Patchset 11 (Latest): // N.B. we don't try to detect loading here because it doesn't seem
// effective.
Igor Kraskevich . unresolved

What does "doesn't seem effective" mean exactly? I.e. if the detection broken here, is it too slow for some reason, or something else?

Line 1545, Patchset 11 (Latest): // We only need to ask a single widget scheduler because (at the moment)
Yaron Friedman . unresolved

but you're asking all of them? i don't understand the comment

Richard Townsend

Yeah, we only need to ask a single one, but the `for (..) { ws -> RequestSchedulerBoost(); break; }` pattern is blocked by the Blink style plugin. Ultimately, they all set the the same flag somewhere in `cc`, and usually there seems to be only one WidgetScheduler.

Igor Kraskevich
 but the for (..) { ws -> RequestSchedulerBoost(); break; } pattern is blocked by the Blink style plugin

Is there any other way to achieve the same? I understand that you want to notify only one widget scheduler, but at the moment the code and the comment diverge and cause some confusion.

Open in Gerrit

Related details

Attention is currently required from:
  • Jonathan Ross
  • Richard Townsend
  • Yaron Friedman
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
Gerrit-Change-Number: 7238073
Gerrit-PatchSet: 11
Gerrit-Owner: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
Gerrit-CC: Eric Seckler <esec...@chromium.org>
Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
Gerrit-Attention: Richard Townsend <ritow...@google.com>
Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
Gerrit-Comment-Date: Mon, 12 Jan 2026 11:04:10 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Richard Townsend (Gerrit)

unread,
Jan 12, 2026, 5:16:07 PMJan 12
to Benoit Lize, Jonathan Ross, Igor Kraskevich, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Benoit Lize, Igor Kraskevich, Jonathan Ross and Yaron Friedman

Richard Townsend voted and added 9 comments

Votes added by Richard Townsend

Auto-Submit+1

9 comments

Patchset-level comments
File-level comment, Patchset 11:
Igor Kraskevich . resolved

High level question - have we tested this for:
1. Speedometer 3 (I presume yes looking at the patch description/comments etc.)
2. Loadline (https://chromium.googlesource.com/crossbench/+/refs/heads/main/config/benchmark/loadline2/, https://chromium.googlesource.com/crossbench/+/refs/heads/main/config/benchmark/loadline)

If so, is there any impact on the scores?

Unfortunately we don't have any reliable local benchmarks for interactions or scrolling, the best we can do is grab some local traces from live websites and check that the new signal is doing something reasonable - we'll have to wait until we get field data to get any trustworthy numbers.

Richard Townsend

Here are my current results for LoadLine:

```
Never: 87.91
Adaptive (previous PS): 86.64
Always: 77.40 (-12%)
```

To be honest, I expected it to be much worse given that 50% of the CPU power vanishes.

Speedometer:
```
Never: 17.834
Adaptive: 14.62
Always: 7.76
```

Unfortunately I don't have a very large sample for either Loadline or Speedometer on this PS, a previous CL achieved basically an identical Speedometer score.

File-level comment, Patchset 12 (Latest):
Richard Townsend . resolved

Incremental CL to respond to the comments so far

The duration of boosts is now configurable e.g. with:

```
./out/arm64/bin/chrome_public_apk run --args='--enable-features=EnableAdpfEfficiencyMode:mode/adaptive/page_load_boost_duration/1s/interaction_boost_duration/16ms --disable-features=RestrictMainThreadBigCoreAffinity' https://buzzfeed.com
```

What's not done yet is the re-plumbing of WebContentsImpl and/or MainThreadSchedulerImpl. @lizeb wants integration with the ThreadAffinityBoost system, but the threading model doesn't doesn't work for me (everything is frame-based and single-threaded) in this version. We still need to pass the input scenario down on CompositorFrameMetadata to let Viz make the decision, _or_ forward a main-frame annotation for WebContentsImpl, don't know which will work yet

File cc/trees/layer_tree_host.h
Line 678, Patchset 11: RequestForceSendMetadata();
Yaron Friedman . resolved

I thought this form of metadata was renderer->browser. Is it needed?
The rest is just side-car on the messages that would already be pushed renderer->viz so no force needed?

Richard Townsend

It's renderer to GPU process. I can try removing this and check it still works.

Richard Townsend

It does still work, so removed in next PS.

File components/viz/service/performance_hint/hint_session.cc
Line 288, Patchset 11: result == 0, "session", (void*)this);
Igor Kraskevich . resolved

Why do we need this? Or more like - how is this supposed to be used?

Richard Townsend

Removed in next patch set

Line 318, Patchset 11: const bool efficiency_preferred,
const bool is_page_load) {
Igor Kraskevich . resolved

Maybe make this an enum? Like `{ kEfficiency, kPageLoad, kUserInput }`

The pair of bools allows passing combinations like "prefer efficiency + is page load" - I don't think we intend to use those?

Richard Townsend

Done

Line 324, Patchset 11: // Default behaviour is 5 seconds for a page load, and 1 for a scroll.
Igor Kraskevich . resolved

What about interactions? If a boost triggers only for page loads and scrolls, I'd expect a big INP regression.

P.S. Looking at the code below it's not just scroll but rather any user input. In which case let's just update the comment.

Richard Townsend

Acknowledged

Line 326, Patchset 11: is_page_load ? base::Seconds(5) : base::Seconds(1);
Yaron Friedman . resolved

make field trial params?

Richard Townsend

Done

File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
Line 1533, Patchset 11: // N.B. we don't try to detect loading here because it doesn't seem
// effective.
Igor Kraskevich . resolved

What does "doesn't seem effective" mean exactly? I.e. if the detection broken here, is it too slow for some reason, or something else?

Richard Townsend

As in the kLoading scenario never seemed to match/fire - I'm not sure why.

Line 1545, Patchset 11: // We only need to ask a single widget scheduler because (at the moment)
Yaron Friedman . resolved

but you're asking all of them? i don't understand the comment

Richard Townsend

Yeah, we only need to ask a single one, but the `for (..) { ws -> RequestSchedulerBoost(); break; }` pattern is blocked by the Blink style plugin. Ultimately, they all set the the same flag somewhere in `cc`, and usually there seems to be only one WidgetScheduler.

Igor Kraskevich
 but the for (..) { ws -> RequestSchedulerBoost(); break; } pattern is blocked by the Blink style plugin

Is there any other way to achieve the same? I understand that you want to notify only one widget scheduler, but at the moment the code and the comment diverge and cause some confusion.

Richard Townsend

So there is a case where we have more than one WidgetScheduler, and that's when you have more than one OOPIF. This seems not to practically matter since all the renderers I think (?) end up in the same ADPF session, but since that might change in future, it might be worth informing all of them

Open in Gerrit

Related details

Attention is currently required from:
  • Benoit Lize
  • Igor Kraskevich
  • Jonathan Ross
  • Yaron Friedman
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
Gerrit-Change-Number: 7238073
Gerrit-PatchSet: 12
Gerrit-Owner: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
Gerrit-CC: Eric Seckler <esec...@chromium.org>
Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
Gerrit-Attention: Benoit Lize <li...@chromium.org>
Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
Gerrit-Attention: Igor Kraskevich <krask...@google.com>
Gerrit-Comment-Date: Mon, 12 Jan 2026 22:15:59 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: Richard Townsend <ritow...@google.com>
Comment-In-Reply-To: Yaron Friedman <yfri...@chromium.org>
Comment-In-Reply-To: Igor Kraskevich <krask...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Richard Townsend (Gerrit)

unread,
Jan 12, 2026, 5:16:15 PMJan 12
to Benoit Lize, Jonathan Ross, Igor Kraskevich, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Benoit Lize, Igor Kraskevich, Jonathan Ross and Yaron Friedman

Richard Townsend voted

Auto-Submit+0
Commit-Queue+1
Gerrit-Comment-Date: Mon, 12 Jan 2026 22:16:09 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Igor Kraskevich (Gerrit)

unread,
Jan 13, 2026, 9:20:09 AMJan 13
to Richard Townsend, Benoit Lize, Jonathan Ross, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Benoit Lize, Jonathan Ross, Richard Townsend and Yaron Friedman

Igor Kraskevich added 1 comment

Patchset-level comments
File-level comment, Patchset 11:
Igor Kraskevich . unresolved

High level question - have we tested this for:
1. Speedometer 3 (I presume yes looking at the patch description/comments etc.)
2. Loadline (https://chromium.googlesource.com/crossbench/+/refs/heads/main/config/benchmark/loadline2/, https://chromium.googlesource.com/crossbench/+/refs/heads/main/config/benchmark/loadline)

If so, is there any impact on the scores?

Unfortunately we don't have any reliable local benchmarks for interactions or scrolling, the best we can do is grab some local traces from live websites and check that the new signal is doing something reasonable - we'll have to wait until we get field data to get any trustworthy numbers.

Richard Townsend

Here are my current results for LoadLine:

```
Never: 87.91
Adaptive (previous PS): 86.64
Always: 77.40 (-12%)
```

To be honest, I expected it to be much worse given that 50% of the CPU power vanishes.

Speedometer:
```
Never: 17.834
Adaptive: 14.62
Always: 7.76
```

Unfortunately I don't have a very large sample for either Loadline or Speedometer on this PS, a previous CL achieved basically an identical Speedometer score.

Igor Kraskevich

Loadline looks OK to me, Never vs Adaptive can be just noise.

The speedometer drop is very big though. I don't think we can ship it with such a regression (assuming that it's real but speedometer is usually much more consistent than loadline so like 5 local runs for each config should give a good picture).

Open in Gerrit

Related details

Attention is currently required from:
  • Benoit Lize
  • Jonathan Ross
  • Richard Townsend
  • Yaron Friedman
Gerrit-Attention: Richard Townsend <ritow...@google.com>
Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
Gerrit-Comment-Date: Tue, 13 Jan 2026 14:19:56 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Richard Townsend <ritow...@google.com>
Comment-In-Reply-To: Igor Kraskevich <krask...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Richard Townsend (Gerrit)

unread,
Jan 13, 2026, 10:42:43 AMJan 13
to Benoit Lize, Jonathan Ross, Igor Kraskevich, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Benoit Lize, Igor Kraskevich, Jonathan Ross and Yaron Friedman

Richard Townsend added 1 comment

Patchset-level comments
Igor Kraskevich . unresolved

High level question - have we tested this for:
1. Speedometer 3 (I presume yes looking at the patch description/comments etc.)
2. Loadline (https://chromium.googlesource.com/crossbench/+/refs/heads/main/config/benchmark/loadline2/, https://chromium.googlesource.com/crossbench/+/refs/heads/main/config/benchmark/loadline)

If so, is there any impact on the scores?

Unfortunately we don't have any reliable local benchmarks for interactions or scrolling, the best we can do is grab some local traces from live websites and check that the new signal is doing something reasonable - we'll have to wait until we get field data to get any trustworthy numbers.

Richard Townsend

Here are my current results for LoadLine:

```
Never: 87.91
Adaptive (previous PS): 86.64
Always: 77.40 (-12%)
```

To be honest, I expected it to be much worse given that 50% of the CPU power vanishes.

Speedometer:
```
Never: 17.834
Adaptive: 14.62
Always: 7.76
```

Unfortunately I don't have a very large sample for either Loadline or Speedometer on this PS, a previous CL achieved basically an identical Speedometer score.

Igor Kraskevich

Loadline looks OK to me, Never vs Adaptive can be just noise.

The speedometer drop is very big though. I don't think we can ship it with such a regression (assuming that it's real but speedometer is usually much more consistent than loadline so like 5 local runs for each config should give a good picture).

Richard Townsend

This device can be a bit noisy due to thermals, so I wouldn't read into it too much - a previous run with 100 iterations did not display a statistically significant difference

Open in Gerrit

Related details

Attention is currently required from:
  • Benoit Lize
  • Igor Kraskevich
  • Jonathan Ross
  • Yaron Friedman
Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
Gerrit-Attention: Igor Kraskevich <krask...@google.com>
Gerrit-Comment-Date: Tue, 13 Jan 2026 15:42:35 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Richard Townsend (Gerrit)

unread,
Jan 13, 2026, 3:17:32 PMJan 13
to Benoit Lize, Jonathan Ross, Igor Kraskevich, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Benoit Lize, Igor Kraskevich, Jonathan Ross and Yaron Friedman

Richard Townsend added 1 comment

Commit Message
Line 15, Patchset 10:* Latest version requests a boost, fulfills the boost if a frame fails
Richard Townsend . resolved

This is no longer true

Richard Townsend

Done

Gerrit-Comment-Date: Tue, 13 Jan 2026 20:17:26 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Igor Kraskevich (Gerrit)

unread,
Jan 14, 2026, 5:29:11 AMJan 14
to Richard Townsend, Benoit Lize, Jonathan Ross, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
Attention needed from Benoit Lize, Jonathan Ross, Richard Townsend and Yaron Friedman

Igor Kraskevich voted and added 2 comments

Votes added by Igor Kraskevich

Code-Review+1

2 comments

Patchset-level comments
File-level comment, Patchset 12 (Latest):
Igor Kraskevich . unresolved

LGTM modulo one thing - let's not just call `NotifyWorkloadIncrease` for all frame navigations in content/browser/web_contents/web_contents_impl.cc unconditionally as this will interfere with the upcoming CPU_LOAD_UP experiment.

File components/viz/service/performance_hint/hint_session.h
Line 36, Patchset 12 (Latest): kInteraction = 2,
Igor Kraskevich . unresolved

Nit: `kUserInput`?

Interaction is heavily associated with this: https://web.dev/articles/inp#whats_in_an_interaction

While we're "boosting" all kinds of inputs, including e.g. (some) scrolls.

The same for `kAdpfInteractionBoostParam` and related code comments.

Open in Gerrit

Related details

Attention is currently required from:
  • Benoit Lize
  • Jonathan Ross
  • Richard Townsend
  • Yaron Friedman
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
    Gerrit-Change-Number: 7238073
    Gerrit-PatchSet: 12
    Gerrit-Owner: Richard Townsend <ritow...@google.com>
    Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
    Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
    Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
    Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
    Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
    Gerrit-CC: Eric Seckler <esec...@chromium.org>
    Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
    Gerrit-Attention: Benoit Lize <li...@chromium.org>
    Gerrit-Attention: Richard Townsend <ritow...@google.com>
    Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
    Gerrit-Comment-Date: Wed, 14 Jan 2026 10:28:55 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Igor Kraskevich (Gerrit)

    unread,
    Jan 14, 2026, 5:29:45 AMJan 14
    to Richard Townsend, Benoit Lize, Jonathan Ross, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
    Attention needed from Benoit Lize, Jonathan Ross, Richard Townsend and Yaron Friedman

    Igor Kraskevich voted Code-Review+0

    Code-Review+0
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Benoit Lize
    • Jonathan Ross
    • Richard Townsend
    • Yaron Friedman
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
      Gerrit-Change-Number: 7238073
      Gerrit-PatchSet: 12
      Gerrit-Owner: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
      Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
      Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
      Gerrit-CC: Eric Seckler <esec...@chromium.org>
      Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
      Gerrit-Attention: Benoit Lize <li...@chromium.org>
      Gerrit-Attention: Richard Townsend <ritow...@google.com>
      Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
      Gerrit-Comment-Date: Wed, 14 Jan 2026 10:29:29 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Jonathan Ross (Gerrit)

      unread,
      Jan 14, 2026, 4:51:04 PMJan 14
      to Richard Townsend, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
      Attention needed from Benoit Lize, Richard Townsend and Yaron Friedman

      Jonathan Ross added 3 comments

      Patchset-level comments
      Jonathan Ross . resolved

      Conceptually SGTM. One question and general +1 to other comments/requests

      File components/viz/service/performance_hint/hint_session.cc
      Line 326, Patchset 12 (Latest): if (hint != HintSession::Scenario::kNormal) {
      Jonathan Ross . unresolved

      Would we ever want to `NotifyWorkloadReset` upon receiving `Normal`?

      This could be a new frame arriving, without input, before we have completed the DrawAndSwap + Presentation of the frame we requested a boost for

      File content/browser/web_contents/web_contents_impl.cc
      Line 7359, Patchset 11: // Notify the OS that the workload is about to increase for main frame
      Yaron Friedman . unresolved

      update and flag guard

      Igor Kraskevich

      +1, this shouldn't be an unconditional change.

      The NotifyWorkloadIncrease logic was originally implemented for sending CPU_LOAD_UP hint on page load - https://chromium-review.googlesource.com/c/chromium/src/+/7062031, b/443653027. It is intentionally limited to main frames only to balance perf boost vs power drain.

      We will run a field experiment for that one after the next Android release reaches most Pixel users.

      As an option we could also plumb the information "is this page load for main frame" through NotifyWorkloadIncrease to viz and decide how to boost inside the hint session.

      Jonathan Ross

      +1

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benoit Lize
      • Richard Townsend
      • Yaron Friedman
      Gerrit-Attention: Benoit Lize <li...@chromium.org>
      Gerrit-Attention: Richard Townsend <ritow...@google.com>
      Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
      Gerrit-Comment-Date: Wed, 14 Jan 2026 21:50:58 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Richard Townsend (Gerrit)

      unread,
      Jan 19, 2026, 12:10:36 PMJan 19
      to Igor Kraskevich, Benoit Lize, Jonathan Ross, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
      Attention needed from Benoit Lize, Igor Kraskevich, Jonathan Ross and Yaron Friedman

      Richard Townsend added 11 comments

      File cc/trees/commit_state.h
      Line 89, Patchset 14 (Latest): bool scheduler_boost_requested = true;
      Richard Townsend . unresolved

      Might be better to flip this over to "prefer_efficient_scheduling = false"

      File cc/trees/layer_tree_host_impl.h
      Line 1294, Patchset 14 (Latest): bool scheduler_boost_requested_ = false;
      Richard Townsend . unresolved

      Same, prefer_efficient_scheduling = false

      File components/viz/common/features.h
      Line 122, Patchset 14 (Latest): kAdpfPageLoadBoostParam;
      Richard Townsend . unresolved

      These parameters are no longer required.

      File components/viz/common/features.cc
      Line 271, Patchset 14 (Latest):constexpr base::FeatureParam<base::TimeDelta> kAdpfPageLoadBoostParam{
      Richard Townsend . unresolved

      Parameters are no longer required.

      File components/viz/common/quads/compositor_frame_metadata.h
      Line 192, Patchset 14 (Latest): bool scheduler_boost_requested = false;
      Richard Townsend . unresolved

      `prefer_efficient_scheduling = false`

      File components/viz/service/frame_sinks/compositor_frame_sink_support.cc
      Line 768, Patchset 14 (Latest): !frame.metadata.scheduler_boost_requested);
      Richard Townsend . unresolved

      Remove not-inversion for clarity, rename to `prefer_efficient_scheduling`

      File components/viz/service/performance_hint/hint_session.cc
      Line 326, Patchset 12: if (hint != HintSession::Scenario::kNormal) {
      Jonathan Ross . resolved

      Would we ever want to `NotifyWorkloadReset` upon receiving `Normal`?

      This could be a new frame arriving, without input, before we have completed the DrawAndSwap + Presentation of the frame we requested a boost for

      Richard Townsend

      Approach has been superseded by a request from MainThreadSchedulerImpl

      File content/browser/web_contents/web_contents_impl.cc
      Line 7359, Patchset 11: // Notify the OS that the workload is about to increase for main frame
      Yaron Friedman . resolved

      update and flag guard

      Igor Kraskevich

      +1, this shouldn't be an unconditional change.

      The NotifyWorkloadIncrease logic was originally implemented for sending CPU_LOAD_UP hint on page load - https://chromium-review.googlesource.com/c/chromium/src/+/7062031, b/443653027. It is intentionally limited to main frames only to balance perf boost vs power drain.

      We will run a field experiment for that one after the next Android release reaches most Pixel users.

      As an option we could also plumb the information "is this page load for main frame" through NotifyWorkloadIncrease to viz and decide how to boost inside the hint session.

      Richard Townsend

      Removed in next PS.

      File services/viz/public/mojom/compositing/compositor_frame_metadata.mojom
      Line 57, Patchset 14 (Latest): bool scheduler_boost_requested;
      Richard Townsend . unresolved

      rename to prefer_efficient_scheduling

      File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
      Line 94, Patchset 14 (Latest)://
      Richard Townsend . unresolved

      TODO: write some documentation here

      Line 111, Patchset 14 (Latest): // renderer
      Richard Townsend . unresolved

      Correct line-wrapping

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benoit Lize
      • Igor Kraskevich
      • Jonathan Ross
      • Yaron Friedman
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
      Gerrit-Change-Number: 7238073
      Gerrit-PatchSet: 14
      Gerrit-Owner: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
      Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
      Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
      Gerrit-CC: Eric Seckler <esec...@chromium.org>
      Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
      Gerrit-Attention: Benoit Lize <li...@chromium.org>
      Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
      Gerrit-Attention: Igor Kraskevich <krask...@google.com>
      Gerrit-Comment-Date: Mon, 19 Jan 2026 17:10:30 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Jonathan Ross <jon...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Richard Townsend (Gerrit)

      unread,
      Jan 19, 2026, 12:15:45 PMJan 19
      to Igor Kraskevich, Benoit Lize, Jonathan Ross, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
      Attention needed from Benoit Lize, Igor Kraskevich, Jonathan Ross and Yaron Friedman

      Richard Townsend added 10 comments

      File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
      Line 101, Patchset 15 (Parent):PLATFORM_EXPORT BASE_DECLARE_FEATURE(kRestrictMainThreadBigCoreAffinity);
      Richard Townsend . unresolved

      Make sure to remove any tests

      File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
      Line 495, Patchset 15 (Latest): MakeNamedTrack("Scheduler.BoostPerformance", this),
      Richard Townsend . unresolved

      Flip to "PreferEfficiency"

      Line 2701, Patchset 15 (Latest):void MainThreadSchedulerImpl::ApplyPerformanceState(const bool boost) {
      Richard Townsend . unresolved

      Flip over to "efficiency_preferred"

      File third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.h
      Line 16, Patchset 15 (Latest): using UpdateStateCallback = base::RepeatingCallback<void(bool is_boosted)>;
      Richard Townsend . unresolved

      Flip to "prefer_efficiency"

      File third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.cc
      Line 41, Patchset 15 (Latest):void PerformanceHelper::Check(base::TimeTicks cur) {
      Richard Townsend . unresolved

      Flip logic over to "prefer_efficiency"

      Line 46, Patchset 15 (Latest): // Check whether we're ahead of the expiry
      Richard Townsend . unresolved

      Nit: end comments with a period.

      File third_party/blink/renderer/platform/scheduler/main_thread/widget_scheduler_impl.h
      Line 65, Patchset 15 (Latest): void OnMainThreadPriorityBoostChanged(bool is_boosted) const {
      Richard Townsend . unresolved

      Flip to "prefer_efficiency"

      File third_party/blink/renderer/platform/scheduler/public/widget_scheduler.h
      Line 48, Patchset 15 (Latest): virtual void OnMainThreadPriorityBoostChanged(bool is_boosted) const = 0;
      Richard Townsend . unresolved

      Flip to "prefer_efficiency"

      File third_party/blink/renderer/platform/widget/widget_base.h
      Line 412, Patchset 15 (Latest): void OnMainThreadPriorityBoostChanged(bool is_boosted) const override;
      Richard Townsend . unresolved

      Flip to "prefer_efficiency"

      File third_party/blink/renderer/platform/widget/widget_base.cc
      Line 1924, Patchset 15 (Latest):void WidgetBase::OnMainThreadPriorityBoostChanged(const bool is_boosted) const {
      Richard Townsend . unresolved

      Flip to "prefer_efficiency"

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benoit Lize
      • Igor Kraskevich
      • Jonathan Ross
      • Yaron Friedman
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
      Gerrit-Change-Number: 7238073
      Gerrit-PatchSet: 15
      Gerrit-Owner: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
      Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
      Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
      Gerrit-CC: Eric Seckler <esec...@chromium.org>
      Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
      Gerrit-Attention: Benoit Lize <li...@chromium.org>
      Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
      Gerrit-Attention: Igor Kraskevich <krask...@google.com>
      Gerrit-Comment-Date: Mon, 19 Jan 2026 17:15:38 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Yaron Friedman (Gerrit)

      unread,
      Jan 19, 2026, 2:12:35 PMJan 19
      to Richard Townsend, Igor Kraskevich, Benoit Lize, Jonathan Ross, Chromium LUCI CQ, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
      Attention needed from Benoit Lize, Igor Kraskevich, Jonathan Ross and Richard Townsend

      Yaron Friedman added 3 comments

      File cc/trees/commit_state.h
      Line 89, Patchset 14: bool scheduler_boost_requested = true;
      Richard Townsend . unresolved

      Might be better to flip this over to "prefer_efficient_scheduling = false"

      Yaron Friedman

      sgtm

      File content/browser/web_contents/web_contents_impl.cc
      Line 7361, Patchset 15 (Parent): if (navigation_handle->IsInMainFrame()) {
      Yaron Friedman . unresolved

      looks like this is still altered unconditionally

      File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
      Line 128, Patchset 15 (Latest): &kUsePerformanceHelper, "page_load_boost", base::Seconds(0.5)};
      Yaron Friedman . unresolved

      copy-pasto? this was going to be higher, right? ~5

      Also is 500ms sufficient?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benoit Lize
      • Igor Kraskevich
      • Jonathan Ross
      • Richard Townsend
      Gerrit-Attention: Richard Townsend <ritow...@google.com>
      Gerrit-Attention: Igor Kraskevich <krask...@google.com>
      Gerrit-Comment-Date: Mon, 19 Jan 2026 19:12:29 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Richard Townsend <ritow...@google.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Jonathan Ross (Gerrit)

      unread,
      Jan 19, 2026, 4:30:16 PMJan 19
      to Richard Townsend, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
      Attention needed from Benoit Lize, Igor Kraskevich and Richard Townsend

      Jonathan Ross added 1 comment

      File components/viz/service/performance_hint/hint_session.cc
      Line 185, Patchset 15 (Latest): // Stores whether the session is current configured for efficiency. Used to
      // de-bounce calls to setPreferPowerEfficiency.
      bool will_prefer_efficiency_ = false;
      bool prefer_efficiency_ = false;
      Jonathan Ross . unresolved

      Nit: maybe rename `prefer_efficiency_` to `prefer_efficiency_applied_` ?

      Update comment to reflect that `will_prefer_efficiency_` is the adaptive mode preference. While `prefer_efficiency_applied_` is the current sessions state

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benoit Lize
      • Igor Kraskevich
      • Richard Townsend
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
      Gerrit-Change-Number: 7238073
      Gerrit-PatchSet: 15
      Gerrit-Owner: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
      Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
      Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
      Gerrit-CC: Eric Seckler <esec...@chromium.org>
      Gerrit-Attention: Benoit Lize <li...@chromium.org>
      Gerrit-Attention: Richard Townsend <ritow...@google.com>
      Gerrit-Attention: Igor Kraskevich <krask...@google.com>
      Gerrit-Comment-Date: Mon, 19 Jan 2026 21:30:10 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Richard Townsend (Gerrit)

      unread,
      Jan 19, 2026, 9:01:51 PMJan 19
      to Igor Kraskevich, Benoit Lize, Jonathan Ross, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
      Attention needed from Benoit Lize, Igor Kraskevich, Jonathan Ross and Yaron Friedman

      Richard Townsend added 20 comments

      File cc/trees/commit_state.h
      Line 89, Patchset 14: bool scheduler_boost_requested = true;
      Richard Townsend . resolved

      Might be better to flip this over to "prefer_efficient_scheduling = false"

      Richard Townsend

      Done

      File components/viz/common/features.h
      Line 122, Patchset 14: kAdpfPageLoadBoostParam;
      Richard Townsend . resolved

      These parameters are no longer required.

      Richard Townsend

      Done

      File components/viz/common/quads/compositor_frame_metadata.h
      Line 192, Patchset 14: bool scheduler_boost_requested = false;
      Richard Townsend . resolved

      `prefer_efficient_scheduling = false`

      Richard Townsend

      Done

      File components/viz/service/performance_hint/hint_session.h
      Line 36, Patchset 12: kInteraction = 2,
      Igor Kraskevich . resolved

      Nit: `kUserInput`?

      Interaction is heavily associated with this: https://web.dev/articles/inp#whats_in_an_interaction

      While we're "boosting" all kinds of inputs, including e.g. (some) scrolls.

      The same for `kAdpfInteractionBoostParam` and related code comments.

      Richard Townsend

      Superseded by a less ambiguous enum `BoostType::kTapOrTyping` in the current PS

      File components/viz/service/performance_hint/hint_session.cc
      Line 185, Patchset 15: // Stores whether the session is current configured for efficiency. Used to

      // de-bounce calls to setPreferPowerEfficiency.
      bool will_prefer_efficiency_ = false;
      bool prefer_efficiency_ = false;
      Jonathan Ross . resolved

      Nit: maybe rename `prefer_efficiency_` to `prefer_efficiency_applied_` ?

      Update comment to reflect that `will_prefer_efficiency_` is the adaptive mode preference. While `prefer_efficiency_applied_` is the current sessions state

      Richard Townsend

      Done

      File content/browser/web_contents/web_contents_impl.cc
      Line 7361, Patchset 15 (Parent): if (navigation_handle->IsInMainFrame()) {
      Yaron Friedman . unresolved

      looks like this is still altered unconditionally

      Richard Townsend

      Will be reverted in next PS.

      File services/viz/public/mojom/compositing/compositor_frame_metadata.mojom
      Line 57, Patchset 14: bool scheduler_boost_requested;
      Richard Townsend . resolved

      rename to prefer_efficient_scheduling

      Richard Townsend

      Done

      File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
      Line 101, Patchset 15 (Parent):PLATFORM_EXPORT BASE_DECLARE_FEATURE(kRestrictMainThreadBigCoreAffinity);
      Richard Townsend . resolved

      Make sure to remove any tests

      Richard Townsend

      Done

      File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
      Line 111, Patchset 14: // renderer
      Richard Townsend . resolved

      Correct line-wrapping

      Richard Townsend

      Done

      Line 128, Patchset 15: &kUsePerformanceHelper, "page_load_boost", base::Seconds(0.5)};
      Yaron Friedman . unresolved

      copy-pasto? this was going to be higher, right? ~5

      Also is 500ms sufficient?

      Richard Townsend

      These values are "how long should we boost for after the UseCase has expired", so it's acceptable to have a short duration (I expect that we will tune this).

      Line 495, Patchset 15: MakeNamedTrack("Scheduler.BoostPerformance", this),
      Richard Townsend . resolved

      Flip to "PreferEfficiency"

      Richard Townsend

      Done

      Line 2701, Patchset 15:void MainThreadSchedulerImpl::ApplyPerformanceState(const bool boost) {
      Richard Townsend . resolved

      Flip over to "efficiency_preferred"

      Richard Townsend

      Done

      File third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.h
      Line 16, Patchset 15: using UpdateStateCallback = base::RepeatingCallback<void(bool is_boosted)>;
      Richard Townsend . resolved

      Flip to "prefer_efficiency"

      Richard Townsend

      Done

      File third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.cc
      Line 41, Patchset 15:void PerformanceHelper::Check(base::TimeTicks cur) {
      Richard Townsend . resolved

      Flip logic over to "prefer_efficiency"

      Richard Townsend

      Done

      Line 46, Patchset 15: // Check whether we're ahead of the expiry
      Richard Townsend . resolved

      Nit: end comments with a period.

      Richard Townsend

      Done

      File third_party/blink/renderer/platform/scheduler/main_thread/widget_scheduler_impl.h
      Line 64, Patchset 16 (Latest): // CPU time.
      Richard Townsend . unresolved

      nit: update this comment

      Line 65, Patchset 15: void OnMainThreadPriorityBoostChanged(bool is_boosted) const {
      Richard Townsend . resolved

      Flip to "prefer_efficiency"

      Richard Townsend

      Done

      File third_party/blink/renderer/platform/scheduler/public/widget_scheduler.h
      Line 48, Patchset 15: virtual void OnMainThreadPriorityBoostChanged(bool is_boosted) const = 0;
      Richard Townsend . resolved

      Flip to "prefer_efficiency"

      Richard Townsend

      Done

      File third_party/blink/renderer/platform/widget/widget_base.h
      Line 412, Patchset 15: void OnMainThreadPriorityBoostChanged(bool is_boosted) const override;
      Richard Townsend . resolved

      Flip to "prefer_efficiency"

      Richard Townsend

      Done

      File third_party/blink/renderer/platform/widget/widget_base.cc
      Line 1924, Patchset 15:void WidgetBase::OnMainThreadPriorityBoostChanged(const bool is_boosted) const {
      Richard Townsend . resolved

      Flip to "prefer_efficiency"

      Richard Townsend

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benoit Lize
      • Igor Kraskevich
      • Jonathan Ross
      • Yaron Friedman
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
      Gerrit-Change-Number: 7238073
      Gerrit-PatchSet: 16
      Gerrit-Owner: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
      Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
      Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
      Gerrit-CC: Eric Seckler <esec...@chromium.org>
      Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
      Gerrit-Attention: Benoit Lize <li...@chromium.org>
      Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
      Gerrit-Attention: Igor Kraskevich <krask...@google.com>
      Gerrit-Comment-Date: Tue, 20 Jan 2026 02:01:42 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Jonathan Ross <jon...@chromium.org>
      Comment-In-Reply-To: Richard Townsend <ritow...@google.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Richard Townsend (Gerrit)

      unread,
      Jan 19, 2026, 9:02:25 PMJan 19
      to Igor Kraskevich, Benoit Lize, Jonathan Ross, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
      Attention needed from Benoit Lize, Igor Kraskevich, Jonathan Ross and Yaron Friedman

      Richard Townsend voted and added 6 comments

      Votes added by Richard Townsend

      Commit-Queue+1

      6 comments

      File cc/trees/layer_tree_host_impl.h
      Line 1294, Patchset 14: bool scheduler_boost_requested_ = false;
      Richard Townsend . resolved

      Same, prefer_efficient_scheduling = false

      Richard Townsend

      Done

      File components/viz/common/features.cc
      Line 271, Patchset 14:constexpr base::FeatureParam<base::TimeDelta> kAdpfPageLoadBoostParam{
      Richard Townsend . resolved

      Parameters are no longer required.

      Richard Townsend

      Done

      File components/viz/service/frame_sinks/compositor_frame_sink_support.cc
      Line 768, Patchset 14: !frame.metadata.scheduler_boost_requested);
      Richard Townsend . resolved

      Remove not-inversion for clarity, rename to `prefer_efficient_scheduling`

      Richard Townsend

      Done

      File content/browser/web_contents/web_contents_impl.cc
      Line 7361, Patchset 15 (Parent): if (navigation_handle->IsInMainFrame()) {
      Yaron Friedman . resolved

      looks like this is still altered unconditionally

      Richard Townsend

      Will be reverted in next PS.

      Richard Townsend

      Done

      File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
      Line 94, Patchset 14://
      Richard Townsend . resolved

      TODO: write some documentation here

      Richard Townsend

      Done

      Line 128, Patchset 15: &kUsePerformanceHelper, "page_load_boost", base::Seconds(0.5)};
      Yaron Friedman . resolved

      copy-pasto? this was going to be higher, right? ~5

      Also is 500ms sufficient?

      Richard Townsend

      These values are "how long should we boost for after the UseCase has expired", so it's acceptable to have a short duration (I expect that we will tune this).

      Richard Townsend

      Done

      Gerrit-Comment-Date: Tue, 20 Jan 2026 02:02:20 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Richard Townsend (Gerrit)

      unread,
      Jan 19, 2026, 9:14:49 PMJan 19
      to Igor Kraskevich, Benoit Lize, Jonathan Ross, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
      Attention needed from Benoit Lize, Igor Kraskevich, Jonathan Ross and Yaron Friedman

      Richard Townsend added 1 comment

      Patchset-level comments
      File-level comment, Patchset 16 (Latest):
      Richard Townsend . resolved

      Example session of Buzzfeed with the scheduler in place:

      https://ui.perfetto.dev/#!/?s=e91780af6bb43d09e1ac9b55f786130c34a04ebe

      Some interesting notes: there are cases where the frame metadata doesn't make it, and some frames seem to also trigger the boost, even though the UseCase doesn't change. Investigating.

      Gerrit-Comment-Date: Tue, 20 Jan 2026 02:14:43 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Richard Townsend (Gerrit)

      unread,
      Jan 20, 2026, 2:11:05 PMJan 20
      to Igor Kraskevich, Benoit Lize, Jonathan Ross, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
      Attention needed from Benoit Lize, Igor Kraskevich, Jonathan Ross and Yaron Friedman

      Richard Townsend voted and added 2 comments

      Votes added by Richard Townsend

      Commit-Queue+1

      2 comments

      Patchset-level comments
      File-level comment, Patchset 12:
      Igor Kraskevich . resolved

      LGTM modulo one thing - let's not just call `NotifyWorkloadIncrease` for all frame navigations in content/browser/web_contents/web_contents_impl.cc unconditionally as this will interfere with the upcoming CPU_LOAD_UP experiment.

      Richard Townsend

      Done

      File third_party/blink/renderer/platform/scheduler/main_thread/widget_scheduler_impl.h
      Line 64, Patchset 16: // CPU time.
      Richard Townsend . resolved

      nit: update this comment

      Richard Townsend

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benoit Lize
      • Igor Kraskevich
      • Jonathan Ross
      • Yaron Friedman
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
      Gerrit-Change-Number: 7238073
      Gerrit-PatchSet: 17
      Gerrit-Owner: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
      Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
      Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
      Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
      Gerrit-CC: Eric Seckler <esec...@chromium.org>
      Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
      Gerrit-Attention: Benoit Lize <li...@chromium.org>
      Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
      Gerrit-Attention: Igor Kraskevich <krask...@google.com>
      Gerrit-Comment-Date: Tue, 20 Jan 2026 19:10:58 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Richard Townsend <ritow...@google.com>
      Comment-In-Reply-To: Igor Kraskevich <krask...@google.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Jonathan Ross (Gerrit)

      unread,
      Jan 20, 2026, 2:29:52 PMJan 20
      to Richard Townsend, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
      Attention needed from Benoit Lize, Igor Kraskevich, Richard Townsend and Yaron Friedman

      Jonathan Ross voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benoit Lize
      • Igor Kraskevich
      • Richard Townsend
      • Yaron Friedman
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 17
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Richard Townsend <ritow...@google.com>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Tue, 20 Jan 2026 19:29:46 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 20, 2026, 3:32:03 PMJan 20
        to Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Igor Kraskevich and Yaron Friedman

        Richard Townsend voted and added 1 comment

        Votes added by Richard Townsend

        Commit-Queue+1

        1 comment

        Patchset-level comments
        File-level comment, Patchset 18 (Latest):
        Richard Townsend . resolved

        Thanks Jon, continuing to fiddle until debug builds work...

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Igor Kraskevich
        • Yaron Friedman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 18
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Tue, 20 Jan 2026 20:31:56 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Yaron Friedman (Gerrit)

        unread,
        Jan 21, 2026, 2:31:32 PMJan 21
        to Richard Townsend, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Igor Kraskevich and Richard Townsend

        Yaron Friedman added 2 comments

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
        Line 96, Patchset 20 (Parent):BASE_FEATURE(kRestrictMainThreadBigCoreAffinity,
        Yaron Friedman . resolved

        this will break benoit's config, right? (that's ok, just a heads-up, as we'll need a new arm configured for that variant)

        Line 959, Patchset 20 (Latest): performance_helper_.Check();
        Yaron Friedman . unresolved

        hmm, these checks are load-bearing now. if there's a failure/early-out case or we miss something, they never expire? Did you consider a timeut/timer based appraoch?

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Igor Kraskevich
        • Richard Townsend
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 20
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Richard Townsend <ritow...@google.com>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Wed, 21 Jan 2026 19:31:24 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 21, 2026, 3:13:45 PMJan 21
        to Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 2 comments

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
        Line 96, Patchset 20 (Parent):BASE_FEATURE(kRestrictMainThreadBigCoreAffinity,
        Yaron Friedman . resolved

        this will break benoit's config, right? (that's ok, just a heads-up, as we'll need a new arm configured for that variant)

        Richard Townsend

        Hopefully, we won't have two slightly different affinity trials. Once we have some numbers back from Benoit's initial trial, we should start up a revised trial with three (or maybe four) arms:

        • Baseline/Control
        • Affinity
        • ADPF efficiency
        • Both
        Line 959, Patchset 20 (Latest): performance_helper_.Check();
        Yaron Friedman . unresolved

        hmm, these checks are load-bearing now. if there's a failure/early-out case or we miss something, they never expire? Did you consider a timeut/timer based appraoch?

        Richard Townsend

        DeadlineTimer might be a good way to trigger the update, with a only a few extra moving parts. As this method ticks every frame, it seemed sensible to avoid this overhead. That said, it is a little irregular (since it's aligned to frame delivery).

        If the method stops ticking, then we're either a) blocked or b) backgrounded. If we're blocked, this is likely due to user input (e.g. clicking a button that executes a few seconds of JS), we likely don't want to revise the throttling state in this case. If we're backgrounded, then we should be using very little CPU already.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Igor Kraskevich
        • Yaron Friedman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 20
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Wed, 21 Jan 2026 20:13:39 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Yaron Friedman <yfri...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 21, 2026, 4:05:21 PMJan 21
        to Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 1 comment

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
        Line 959, Patchset 20 (Latest): performance_helper_.Check();
        Yaron Friedman . unresolved

        hmm, these checks are load-bearing now. if there's a failure/early-out case or we miss something, they never expire? Did you consider a timeut/timer based appraoch?

        Richard Townsend

        DeadlineTimer might be a good way to trigger the update, with a only a few extra moving parts. As this method ticks every frame, it seemed sensible to avoid this overhead. That said, it is a little irregular (since it's aligned to frame delivery).

        If the method stops ticking, then we're either a) blocked or b) backgrounded. If we're blocked, this is likely due to user input (e.g. clicking a button that executes a few seconds of JS), we likely don't want to revise the throttling state in this case. If we're backgrounded, then we should be using very little CPU already.

        Richard Townsend

        Actually (just chasing a few bugs out), I think there might be a better/simpler way of doing this:

        • Add to the timer at the start of every frame based on the current use_case
        • Check the timer at the end of every frame and the start of any idle period

        This seems to resolve the issue with the current patchset where the boost can toggle on and off within a given UseCase period.

        Gerrit-Comment-Date: Wed, 21 Jan 2026 21:05:16 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 21, 2026, 5:23:18 PMJan 21
        to Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 3 comments

        Patchset-level comments
        File-level comment, Patchset 21 (Latest):
        Richard Townsend . resolved

        PS21 centralizes and simplifies the logic for adding the boost, moving to a per-frame model.

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
        Line 392, Patchset 21 (Latest): // Start with a "boost", that is initially allow the renderer to run
        // everywhere. This is meant to help with initialization. In the worst case,
        // the current use case never changes, and the renderer is always allowed to
        // run on all cores. But that would also mean a renderer that didn't load
        // anything, ad was never interacted with, which then means it should not
        // use a lot of resources.
        Richard Townsend . unresolved

        Nit: clarify and simplify this comment

        Line 1503, Patchset 21 (Latest):constexpr bool ScrollNeedsMainThreadPrioritization(const UseCase use_case) {
        switch (use_case) {
        case UseCase::kTouchstart:
        case UseCase::kSynchronizedGesture:
        case UseCase::kMainThreadGesture:
        case UseCase::kMainThreadCustomInputHandling:
        return true;
        default:
        return false;
        }
        }
        Richard Townsend . unresolved

        Nit: remove this now-unnecessary function.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Igor Kraskevich
        • Yaron Friedman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 21
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Wed, 21 Jan 2026 22:23:11 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 21, 2026, 6:22:55 PMJan 21
        to Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 1 comment

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
        Line 113, Patchset 21 (Latest): {PerformanceHintMode::kAffinity, "affinity"},
        Richard Townsend . unresolved

        I think this needs to be set with @Benoit's similarly named flag `RestrictBigCoreThreadAffinity`, otherwise it doesn't quite have quite the intended effect (e.g. the renderer's Compositor threads will escape onto the main core). This should be documented at minimum.

        Gerrit-Comment-Date: Wed, 21 Jan 2026 23:22:48 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 21, 2026, 6:35:04 PMJan 21
        to Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Igor Kraskevich and Yaron Friedman

        Richard Townsend voted and added 5 comments

        Votes added by Richard Townsend

        Commit-Queue+1

        5 comments

        Patchset-level comments
        File-level comment, Patchset 22 (Latest):
        Richard Townsend . resolved

        @li...@chromium.org: awaiting your comments before adding more reviewers

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
        Line 113, Patchset 21: {PerformanceHintMode::kAffinity, "affinity"},
        Richard Townsend . resolved

        I think this needs to be set with @Benoit's similarly named flag `RestrictBigCoreThreadAffinity`, otherwise it doesn't quite have quite the intended effect (e.g. the renderer's Compositor threads will escape onto the main core). This should be documented at minimum.

        Richard Townsend

        Done

        Line 392, Patchset 21: // Start with a "boost", that is initially allow the renderer to run

        // everywhere. This is meant to help with initialization. In the worst case,
        // the current use case never changes, and the renderer is always allowed to
        // run on all cores. But that would also mean a renderer that didn't load
        // anything, ad was never interacted with, which then means it should not
        // use a lot of resources.
        Richard Townsend . resolved

        Nit: clarify and simplify this comment

        Richard Townsend

        Done

        Line 959, Patchset 20: performance_helper_.Check();
        Yaron Friedman . resolved

        hmm, these checks are load-bearing now. if there's a failure/early-out case or we miss something, they never expire? Did you consider a timeut/timer based appraoch?

        Richard Townsend

        DeadlineTimer might be a good way to trigger the update, with a only a few extra moving parts. As this method ticks every frame, it seemed sensible to avoid this overhead. That said, it is a little irregular (since it's aligned to frame delivery).

        If the method stops ticking, then we're either a) blocked or b) backgrounded. If we're blocked, this is likely due to user input (e.g. clicking a button that executes a few seconds of JS), we likely don't want to revise the throttling state in this case. If we're backgrounded, then we should be using very little CPU already.

        Richard Townsend

        Actually (just chasing a few bugs out), I think there might be a better/simpler way of doing this:

        • Add to the timer at the start of every frame based on the current use_case
        • Check the timer at the end of every frame and the start of any idle period

        This seems to resolve the issue with the current patchset where the boost can toggle on and off within a given UseCase period.

        Richard Townsend

        PS21 seems to be significantly better behaved, so resolving this one (feel free to re-open).

        Line 1503, Patchset 21:constexpr bool ScrollNeedsMainThreadPrioritization(const UseCase use_case) {

        switch (use_case) {
        case UseCase::kTouchstart:
        case UseCase::kSynchronizedGesture:
        case UseCase::kMainThreadGesture:
        case UseCase::kMainThreadCustomInputHandling:
        return true;
        default:
        return false;
        }
        }
        Richard Townsend . resolved

        Nit: remove this now-unnecessary function.

        Richard Townsend

        Done

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Igor Kraskevich
        • Yaron Friedman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 22
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Wed, 21 Jan 2026 23:34:58 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 26, 2026, 3:30:38 PMJan 26
        to Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 9 comments

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
        Line 843, Patchset 22 (Parent): // enabled.
        Richard Townsend . unresolved

        Bring back

        Line 101, Patchset 22 (Parent):PLATFORM_EXPORT BASE_DECLARE_FEATURE(kRestrictMainThreadBigCoreAffinity);
        Richard Townsend . unresolved

        It's clear I'm going to have to bring this back because fixes keep landing, making this change harder to rebase.

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
        Line 97, Patchset 22 (Parent): base::FEATURE_DISABLED_BY_DEFAULT);
        Richard Townsend . unresolved

        Bring back and add additional CHECKs to prevent them the new flag from being switched on at the same time.

        Line 249, Patchset 22 (Parent): if (--depth_ == 0) {
        Richard Townsend . unresolved

        Return this

        Line 421, Patchset 22 (Parent): // anything, ad was never interacted with, which then means it should not
        Richard Townsend . unresolved

        Return this code.

        Line 1682, Patchset 22 (Parent): previous_use_case == UseCase::kEarlyLoading;
        Richard Townsend . unresolved

        Return this code

        Line 2209, Patchset 22 (Parent): }
        Richard Townsend . unresolved

        Return this code

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc
        Line 422, Patchset 22 (Parent): // Checking early, as the forced update below will reset it.
        Richard Townsend . unresolved

        Return

        Line 4547, Patchset 22 (Parent): [&](base::PlatformThreadId thread_id, bool allowed) {
        Richard Townsend . unresolved

        Return

        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Mon, 26 Jan 2026 20:30:30 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 26, 2026, 3:57:55 PMJan 26
        to Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 9 comments

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
        Richard Townsend . resolved

        Bring back

        Richard Townsend

        Done

        Line 101, Patchset 22 (Parent):PLATFORM_EXPORT BASE_DECLARE_FEATURE(kRestrictMainThreadBigCoreAffinity);
        Richard Townsend . resolved

        It's clear I'm going to have to bring this back because fixes keep landing, making this change harder to rebase.

        Richard Townsend

        Done

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
        Line 97, Patchset 22 (Parent): base::FEATURE_DISABLED_BY_DEFAULT);
        Richard Townsend . resolved

        Bring back and add additional CHECKs to prevent them the new flag from being switched on at the same time.

        Richard Townsend

        Done

        Line 249, Patchset 22 (Parent): if (--depth_ == 0) {
        Richard Townsend . resolved

        Return this

        Richard Townsend

        Done

        Line 421, Patchset 22 (Parent): // anything, ad was never interacted with, which then means it should not
        Richard Townsend . resolved

        Return this code.

        Richard Townsend

        Done

        Line 1682, Patchset 22 (Parent): previous_use_case == UseCase::kEarlyLoading;
        Richard Townsend . resolved

        Return this code

        Richard Townsend

        Done

        Richard Townsend . resolved

        Return this code

        Richard Townsend

        Done

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl_unittest.cc
        Line 422, Patchset 22 (Parent): // Checking early, as the forced update below will reset it.
        Richard Townsend . resolved

        Return

        Richard Townsend

        Done

        Line 4547, Patchset 22 (Parent): [&](base::PlatformThreadId thread_id, bool allowed) {
        Richard Townsend . resolved

        Return

        Richard Townsend

        Done

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Igor Kraskevich
        • Yaron Friedman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 23
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Mon, 26 Jan 2026 20:57:48 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Richard Townsend <ritow...@google.com>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 26, 2026, 5:40:54 PMJan 26
        to Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 1 comment

        Patchset-level comments
        File-level comment, Patchset 23 (Latest):
        Richard Townsend . resolved

        PS23 restores the original affinity helper and command line flags, ready for review

        Gerrit-Comment-Date: Mon, 26 Jan 2026 22:40:42 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 26, 2026, 5:41:52 PMJan 26
        to Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Chromium IPC Reviews, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 1 comment

        Patchset-level comments
        Richard Townsend . resolved

        Hi IPC reviewers, PTAL at this CL which adds an additional boolean flag on CompositorFrameMetadata.

        Best
        Richard

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Chromium IPC Reviews
        • Igor Kraskevich
        • Yaron Friedman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 23
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Mon, 26 Jan 2026 22:41:42 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 26, 2026, 5:44:45 PMJan 26
        to Ian Kilpatrick, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Chromium IPC Reviews, Ian Kilpatrick, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 1 comment

        Patchset-level comments
        Richard Townsend . resolved

        Hi Ian, PTAL at some changes to MainThreadSchedulerImpl, WidgetScheduler and associated machinery. These changes are to communicate a page's idle state to the compositor so appropriate power management can be applied on Android.

        Best
        Richard

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Chromium IPC Reviews
        • Ian Kilpatrick
        • Igor Kraskevich
        • Yaron Friedman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 23
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-Reviewer: Ian Kilpatrick <ikilp...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Ian Kilpatrick <ikilp...@chromium.org>
        Gerrit-Attention: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Mon, 26 Jan 2026 22:44:37 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        gwsq (Gerrit)

        unread,
        Jan 26, 2026, 5:52:18 PMJan 26
        to Richard Townsend, Chromium IPC Reviews, Ken Buchanan, Ian Kilpatrick, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Ian Kilpatrick, Igor Kraskevich, Ken Buchanan and Yaron Friedman

        Message from gwsq

        From googleclient/chrome/chromium_gwsq/ipc/config.gwsq:
        IPC: ke...@chromium.org

        📎 It looks like you’re making a possibly security-sensitive change! 📎 IPC security review isn’t a rubberstamp, so your friendly security reviewer will need a fair amount of context to review your CL effectively. Please review your CL description and code comments to make sure they provide context for someone unfamiliar with your project/area. Pay special attention to where data comes from and which processes it flows between (and their privilege levels). Feel free to point your security reviewer at design docs, bugs, or other links if you can’t reasonably make a self-contained CL description. (Also see https://cbea.ms/git-commit/).

        IPC reviewer(s): ke...@chromium.org


        Reviewer source(s):
        ke...@chromium.org is from context(googleclient/chrome/chromium_gwsq/ipc/config.gwsq)

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Ian Kilpatrick
        • Igor Kraskevich
        • Ken Buchanan
        • Yaron Friedman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 23
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Ian Kilpatrick <ikilp...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-CC: gwsq
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Ken Buchanan <ke...@chromium.org>
        Gerrit-Attention: Ian Kilpatrick <ikilp...@chromium.org>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Mon, 26 Jan 2026 22:52:03 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Ian Kilpatrick (Gerrit)

        unread,
        Jan 26, 2026, 5:54:05 PMJan 26
        to Richard Townsend, Francois Pierre Doray, Chromium IPC Reviews, Ken Buchanan, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich, Ken Buchanan, Richard Townsend and Yaron Friedman

        Ian Kilpatrick added 1 comment

        Patchset-level comments
        Ian Kilpatrick . resolved

        I'm probably not the best for this - maybe fdoray@ ?

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Francois Pierre Doray
        • Igor Kraskevich
        • Ken Buchanan
        • Richard Townsend
        • Yaron Friedman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 23
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-CC: gwsq
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Ken Buchanan <ke...@chromium.org>
        Gerrit-Attention: Richard Townsend <ritow...@google.com>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Mon, 26 Jan 2026 22:53:52 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Ken Buchanan (Gerrit)

        unread,
        Jan 26, 2026, 6:07:18 PMJan 26
        to Richard Townsend, Francois Pierre Doray, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich, Richard Townsend and Yaron Friedman

        Ken Buchanan voted and added 1 comment

        Votes added by Ken Buchanan

        Code-Review+1

        1 comment

        Patchset-level comments
        Ken Buchanan . resolved

        mojom lgtm

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Francois Pierre Doray
        • Igor Kraskevich
        • Richard Townsend
        • Yaron Friedman
        Gerrit-Attention: Richard Townsend <ritow...@google.com>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Mon, 26 Jan 2026 23:07:10 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Francois Pierre Doray (Gerrit)

        unread,
        Jan 28, 2026, 11:31:17 AMJan 28
        to Richard Townsend, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Igor Kraskevich, Richard Townsend and Yaron Friedman

        Francois Pierre Doray added 12 comments

        File cc/trees/layer_tree_host.h
        Line 689, Patchset 23 (Latest): void RequestEfficientScheduling(const bool prefer_efficiency) {
        Francois Pierre Doray . unresolved

        Remove const.

        Reason: "For a function parameter passed by value, const has no effect on the caller, thus is not recommended in function declarations. See TotW #109." https://google.github.io/styleguide/cppguide.html#Use_of_const

        File components/viz/service/performance_hint/hint_session.cc
        Line 165, Patchset 23 (Latest):
        Francois Pierre Doray . unresolved

        nit: Group overrides together:

        ```
        // HintSession:
        void NotifyWorkloadReset() override;
        void NotifyWorkloadIncrease() override;
        void SetPreferPowerEfficientScheduling(bool prefer_efficiency) final;

        void WakeUp();
        bool ShouldScheduleForEfficiency() const;
        ```

        Reason: Readability.

        Line 170, Patchset 23 (Latest): bool ShouldScheduleForEfficiency() const;
        Francois Pierre Doray . unresolved

        Keep this in the private section?

        Reason: I couldn't find where it's used outside of this class?

        Line 318, Patchset 23 (Latest):void AdpfHintSession::SetPreferPowerEfficientScheduling(bool prefer_efficient) {
        Francois Pierre Doray . unresolved

        Use the same name as in the declaration.

        Reason: Readability.

        File services/viz/public/mojom/compositing/compositor_frame_metadata.mojom
        Line 58, Patchset 23 (Latest): // power during e.g. an idle period.
        Francois Pierre Doray . unresolved

        Tip: If this is Android-specific, you can add `[EnableIf=is_android]` so it's not compiled on other platforms.

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
        Line 505, Patchset 23 (Latest): // Start in high-performance mode.
        performance_helper_.Add(PerformanceHelper::BoostType::kPageLoad);
        Francois Pierre Doray . unresolved

        Given that we have spare renderers (which remain unused for an unbounded amount of time), is this the right initial state?

        Line 1053, Patchset 23 (Latest): // then (perhaps) uncap the CPU's performance for this and a few subsequent
        Francois Pierre Doray . unresolved

        Capture time in a local variable and pass it as argument to Add() and Check(), to avoid sampling the time multiple times (and you already have a time argument on Add() and Check() to take an externally captured time).

        Line 1071, Patchset 23 (Latest):
        Francois Pierre Doray . unresolved

        What guarantees do we have that WillBeginFrame, BeginFrameNotExpectedSoon, BeginMainFrameNotExpectedUntil will be invoked ~soon after a boost expires? E.g. If:

        • Frames are produced for a short amount of time
        • BeginFrameNotExpectedSoon is invoked, because no frames are expected soon.
        • The boost timeout expires
        • No frames are ever produced again

        What guarantees that we'll call `performance_helper_.Check()` and end the boost?

        File third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.h
        Line 52, Patchset 23 (Latest): base::TimeDelta GetDuration(BoostType) const;
        File third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.cc
        Line 16, Patchset 23 (Latest):void PerformanceHelper::Configure(const Params&& params) {
        Francois Pierre Doray . unresolved

        Change the type to `Params params`.

        Reason:

        Line 17, Patchset 23 (Latest): params_.loading_boost = params.loading_boost;
        Francois Pierre Doray . unresolved

        Move the params struct, instead of individual members of the params struct?

        Reason: Readability, avoid future errors.

        Line 36, Patchset 23 (Latest): [[likely]] now = base::TimeTicks::LowResolutionNow();
        Francois Pierre Doray . unresolved

        Suggestion: Use default argument value instead. (You're already using a default argument value, it's a matter of changing `base::TimeTicks()` to `base::TimeTicks::LowResolutionNow()`.

        Edit: It might not even be worthwhile to support passing a null time (see https://chromium-review.googlesource.com/c/chromium/src/+/7238073/23/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc#1052).

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Wed, 28 Jan 2026 16:31:04 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 28, 2026, 3:06:27 PMJan 28
        to Ken Buchanan, Francois Pierre Doray, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich and Yaron Friedman

        Richard Townsend voted and added 13 comments

        Votes added by Richard Townsend

        Commit-Queue+1

        13 comments

        Patchset-level comments
        File-level comment, Patchset 25 (Latest):
        Richard Townsend . resolved

        PS24/PS25 address review comments, correct a misnamed private variable, generally improve consistency and clarify inline documentation. Ready for review after dry-run. Undergoing testing:

        • ./out/arm64/bin/chrome_public_apk run --args='EnableAdpfEfficiencyMode:mode/never,RestrictMainThreadBigCoreAffinity,RestrictBigCoreThreadAffinity' (check for no regressions)
        • ./out/arm64/bin/chrome_public_apk run --args='EnableAdpfEfficiencyMode:mode/adaptive,UsePerformanceHelper:mode/affinity,RestrictBigCoreThreadAffinity' (check that the affinity performance management is working correctly)
        • ./out/arm64/bin/chrome_public_apk run --args='EnableAdpfEfficiencyMode:mode/adaptive,UsePerformanceHelper:mode/compositor' (check that ADPF performance management is working)
        • ./out/arm64/bin/chrome_public_apk run --args='EnableAdpfEfficiencyMode:mode/adaptive,UsePerformanceHelper:mode/both, RestrictBigCoreThreadAffinity' (check that the combined strategy is working)
        • ./out/arm64.dchecks/bin/chrome_public_apk run --args='EnableAdpfEfficiencyMode:mode/adaptive,UsePerformanceHelper:mode/both, RestrictMainThreadBigCoreAffinity,RestrictBigCoreThreadAffinity' (check that the PerformanceHelper and @lizeb's approach cannot be accidentally enabled together).
        File cc/trees/layer_tree_host.h
        Line 689, Patchset 23: void RequestEfficientScheduling(const bool prefer_efficiency) {
        Francois Pierre Doray . resolved

        Remove const.

        Reason: "For a function parameter passed by value, const has no effect on the caller, thus is not recommended in function declarations. See TotW #109." https://google.github.io/styleguide/cppguide.html#Use_of_const

        Richard Townsend

        Done

        File components/viz/service/performance_hint/hint_session.cc
        Line 165, Patchset 23:
        Francois Pierre Doray . resolved

        nit: Group overrides together:

        ```
        // HintSession:
        void NotifyWorkloadReset() override;
        void NotifyWorkloadIncrease() override;
        void SetPreferPowerEfficientScheduling(bool prefer_efficiency) final;

        void WakeUp();
        bool ShouldScheduleForEfficiency() const;
        ```

        Reason: Readability.

        Richard Townsend

        Done

        Line 170, Patchset 23: bool ShouldScheduleForEfficiency() const;
        Francois Pierre Doray . resolved

        Keep this in the private section?

        Reason: I couldn't find where it's used outside of this class?

        Richard Townsend

        Done

        Line 318, Patchset 23:void AdpfHintSession::SetPreferPowerEfficientScheduling(bool prefer_efficient) {
        Francois Pierre Doray . resolved

        Use the same name as in the declaration.

        Reason: Readability.

        Richard Townsend

        Done

        File services/viz/public/mojom/compositing/compositor_frame_metadata.mojom
        Line 58, Patchset 23: // power during e.g. an idle period.
        Francois Pierre Doray . resolved

        Tip: If this is Android-specific, you can add `[EnableIf=is_android]` so it's not compiled on other platforms.

        Richard Townsend

        Unfortunately it doesn't seem to play well with cross-compilation, but I might be holding it wrong. I think that it's reasonably forseeable that other platforms could make use of it, but nothing's specifically planned at the moment.

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
        Line 505, Patchset 23: // Start in high-performance mode.
        performance_helper_.Add(PerformanceHelper::BoostType::kPageLoad);
        Francois Pierre Doray . resolved

        Given that we have spare renderers (which remain unused for an unbounded amount of time), is this the right initial state?

        Richard Townsend

        That's a good question. The spare renderer thing is a case where performance shouldn't matter in general, but maybe (?) does in practise and the idea is to keep the existing behaviour as close as possible. In my view: this is something that could be tweaked later in-field.

        Line 1053, Patchset 23: // then (perhaps) uncap the CPU's performance for this and a few subsequent
        Francois Pierre Doray . resolved

        Capture time in a local variable and pass it as argument to Add() and Check(), to avoid sampling the time multiple times (and you already have a time argument on Add() and Check() to take an externally captured time).

        Richard Townsend

        Done

        Line 1071, Patchset 23:
        Francois Pierre Doray . resolved

        What guarantees do we have that WillBeginFrame, BeginFrameNotExpectedSoon, BeginMainFrameNotExpectedUntil will be invoked ~soon after a boost expires? E.g. If:

        • Frames are produced for a short amount of time
        • BeginFrameNotExpectedSoon is invoked, because no frames are expected soon.
        • The boost timeout expires
        • No frames are ever produced again

        What guarantees that we'll call `performance_helper_.Check()` and end the boost?

        Richard Townsend

        here is nothing that currently guarantees calling `performance_helper_.Check()` once we go idle, but I believe that is the correct trade-off.

        My thinking is:

        • During activity: We check on frame boundaries.
        • During sleep: We let the boost hang. Waking the CPU from a deep C-state via a Timer just to clear a hint likely consumes more power than leaving the hint active on a sleeping thread.
        • On wake-up: We catch the transition immediately.

        However, having reviewed the code more carefully based on your comment, I think that relying on `UpdatePolicy` for the 'wake-up' check is insufficient, as it only runs when priorities change. In the next patch set, I've added an extra check on `MaybeUpdatePolicyOnTaskCompleted`. This guarantees that the very first task to run after a sleep will invalidate the boost.

        File third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.h
        Line 52, Patchset 23: base::TimeDelta GetDuration(BoostType) const;
        Francois Pierre Doray . resolved
        Richard Townsend

        Done

        File third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.cc
        Line 16, Patchset 23:void PerformanceHelper::Configure(const Params&& params) {
        Francois Pierre Doray . resolved

        Change the type to `Params params`.

        Reason:

        Richard Townsend

        Done

        Line 17, Patchset 23: params_.loading_boost = params.loading_boost;
        Francois Pierre Doray . resolved

        Move the params struct, instead of individual members of the params struct?

        Reason: Readability, avoid future errors.

        Richard Townsend

        Done

        Line 36, Patchset 23: [[likely]] now = base::TimeTicks::LowResolutionNow();
        Francois Pierre Doray . resolved

        Suggestion: Use default argument value instead. (You're already using a default argument value, it's a matter of changing `base::TimeTicks()` to `base::TimeTicks::LowResolutionNow()`.

        Edit: It might not even be worthwhile to support passing a null time (see https://chromium-review.googlesource.com/c/chromium/src/+/7238073/23/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc#1052).

        Richard Townsend

        Done

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Francois Pierre Doray
        • Igor Kraskevich
        • Yaron Friedman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 25
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-CC: gwsq
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Wed, 28 Jan 2026 20:06:16 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        Comment-In-Reply-To: Francois Pierre Doray <fdo...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 28, 2026, 3:38:04 PMJan 28
        to Ken Buchanan, Francois Pierre Doray, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich and Yaron Friedman

        Richard Townsend voted and added 1 comment

        Votes added by Richard Townsend

        Commit-Queue+2

        1 comment

        Patchset-level comments
        Richard Townsend . resolved

        Verified:

        ./out/arm64/bin/chrome_public_apk run --args='--enable-features=EnableAdpfEfficiencyMode:mode/adaptive,UsePerformanceHelper:mode/compositor' - works as expected, see all the relevant trace events

        Gerrit-Comment-Date: Wed, 28 Jan 2026 20:37:54 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 28, 2026, 3:41:59 PMJan 28
        to Ken Buchanan, Francois Pierre Doray, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich, Richard Townsend and Yaron Friedman

        Richard Townsend voted and added 1 comment

        Votes added by Richard Townsend

        Commit-Queue+1

        1 comment

        Patchset-level comments
        Richard Townsend . resolved

        Verified: ./out/arm64/bin/chrome_public_apk run --args='--enable-features=EnableAdpfEfficiencyMode:mode/adaptive,UsePerformanceHelper:mode/both,RestrictBigCoreThreadAffinity' - works

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Francois Pierre Doray
        • Igor Kraskevich
        • Richard Townsend
        • Yaron Friedman
        Gerrit-Attention: Richard Townsend <ritow...@google.com>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Wed, 28 Jan 2026 20:41:48 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 28, 2026, 3:49:00 PMJan 28
        to Ken Buchanan, Francois Pierre Doray, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 1 comment

        Patchset-level comments
        Richard Townsend . resolved

        Verified: ./out/arm64/bin/chrome_public_apk run --args='--enable-features=EnableAdpfEfficiencyMode:mode/adaptive,UsePerformanceHelper:mode/both,RestrictBigCoreThreadAffinity' - works

        Richard Townsend

        Verified: ./out/arm64/bin/chrome_public_apk run --args='--enable-features=EnableAdpfEfficiencyMode:mode/never,RestrictMainThreadBigCoreAffinity,RestrictBigCoreThreadAffinity - CrRendererMain does not appear on the big core

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Francois Pierre Doray
        • Igor Kraskevich
        • Yaron Friedman
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Wed, 28 Jan 2026 20:48:50 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Richard Townsend <ritow...@google.com>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 28, 2026, 4:11:54 PMJan 28
        to Ken Buchanan, Francois Pierre Doray, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 1 comment

        Patchset-level comments
        Richard Townsend . resolved

        Verified: ./out/arm64.dchecks/bin/chrome_public_apk run --args='--enable-features=EnableAdpfEfficiencyMode:mode/adaptive,UsePerformanceHelper:mode/both,RestrictMainThreadBigCoreAffinity,RestrictBigCoreThreadAffinity' - stops the flags being enabled together

        Gerrit-Comment-Date: Wed, 28 Jan 2026 21:11:47 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 29, 2026, 10:44:39 AMJan 29
        to Ken Buchanan, Francois Pierre Doray, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 1 comment

        Patchset-level comments
        File-level comment, Patchset 11:
        Igor Kraskevich . unresolved

        High level question - have we tested this for:
        1. Speedometer 3 (I presume yes looking at the patch description/comments etc.)
        2. Loadline (https://chromium.googlesource.com/crossbench/+/refs/heads/main/config/benchmark/loadline2/, https://chromium.googlesource.com/crossbench/+/refs/heads/main/config/benchmark/loadline)

        If so, is there any impact on the scores?

        Unfortunately we don't have any reliable local benchmarks for interactions or scrolling, the best we can do is grab some local traces from live websites and check that the new signal is doing something reasonable - we'll have to wait until we get field data to get any trustworthy numbers.

        Richard Townsend

        Here are my current results for LoadLine:

        ```
        Never: 87.91
        Adaptive (previous PS): 86.64
        Always: 77.40 (-12%)
        ```

        To be honest, I expected it to be much worse given that 50% of the CPU power vanishes.

        Speedometer:
        ```
        Never: 17.834
        Adaptive: 14.62
        Always: 7.76
        ```

        Unfortunately I don't have a very large sample for either Loadline or Speedometer on this PS, a previous CL achieved basically an identical Speedometer score.

        Igor Kraskevich

        Loadline looks OK to me, Never vs Adaptive can be just noise.

        The speedometer drop is very big though. I don't think we can ship it with such a regression (assuming that it's real but speedometer is usually much more consistent than loadline so like 5 local runs for each config should give a good picture).

        Richard Townsend

        This device can be a bit noisy due to thermals, so I wouldn't read into it too much - a previous run with 100 iterations did not display a statistically significant difference

        Richard Townsend

        OK, test results for PS25:

        https://colab.sandbox.google.com/drive/10bIPGVO4kIZNhEMxDHWznxVy4czFyLQJ?resourcekey=0-kj3dy0SHsYp86f9jJ99irQ#scrollTo=D3BdM92oZOrT

        Basically, LoadLine looks OK, but looks like there's a problem with Speedometer (about 10% down in terms of Geomean). I think the problem is that the page load clamp comes too soon. I'll experiment and address in PS26.

        Gerrit-Comment-Date: Thu, 29 Jan 2026 15:44:31 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Richard Townsend <ritow...@google.com>
        Comment-In-Reply-To: Igor Kraskevich <krask...@google.com>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 29, 2026, 9:35:30 PMJan 29
        to Ken Buchanan, Francois Pierre Doray, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich and Yaron Friedman

        Richard Townsend voted and added 2 comments

        Votes added by Richard Townsend

        Commit-Queue+1

        2 comments

        Patchset-level comments
        File-level comment, Patchset 26 (Latest):
        Richard Townsend . resolved

        PS26: corrects some inline documentation and formatting, adds a missing call inside `MainThreadSchedulerImpl::DidCommitProvisionalLoad` which corrects the Speedometer 3.1 performance regression.

        https://colab.research.google.com/drive/1iG4tpezeAnaWZLA-q9_Eh0wX53kGMcM9?resourcekey=0-HrdsF2raQEhuKn-heBCCeg&usp=sharing

        File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
        Line 651, Patchset 25: void RequestSchedulingBoost(bool is_due_to_input);
        Richard Townsend . resolved

        Remove

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Francois Pierre Doray
        • Igor Kraskevich
        • Yaron Friedman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
        Gerrit-Change-Number: 7238073
        Gerrit-PatchSet: 26
        Gerrit-Owner: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
        Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Eric Seckler <esec...@chromium.org>
        Gerrit-CC: gwsq
        Gerrit-Attention: Benoit Lize <li...@chromium.org>
        Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
        Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
        Gerrit-Comment-Date: Fri, 30 Jan 2026 02:35:21 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard Townsend (Gerrit)

        unread,
        Jan 30, 2026, 10:49:37 AMJan 30
        to Ken Buchanan, Francois Pierre Doray, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
        Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich and Yaron Friedman

        Richard Townsend added 2 comments

        Patchset-level comments
        File-level comment, Patchset 11:
        Igor Kraskevich . resolved
        Richard Townsend

        Test results for PS26, seems that everything is lined up for Speedometer 3.1:
        https://colab.sandbox.google.com/drive/1iG4tpezeAnaWZLA-q9_Eh0wX53kGMcM9?resourcekey=0-HrdsF2raQEhuKn-heBCCeg&usp=sharing#scrollTo=aR6eepXNzBxK

        And as the LoadLine results looked OK for PS25, I think we can say that all of the various MainThreadSchedulerImpl experiments are OK to ship from a Speedometer perspective

        Richard Townsend . resolved

        PS26 is ready for review @fdo...@chromium.org

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benoit Lize
        • Francois Pierre Doray
        • Igor Kraskevich
        • Yaron Friedman
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement is not satisfiedCode-Owners
          • requirement satisfiedCode-Review
          • requirement satisfiedReview-Enforcement
          Gerrit-Comment-Date: Fri, 30 Jan 2026 15:49:24 +0000
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Francois Pierre Doray (Gerrit)

          unread,
          Jan 30, 2026, 11:25:38 AMJan 30
          to Richard Townsend, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
          Attention needed from Benoit Lize, Igor Kraskevich, Richard Townsend and Yaron Friedman

          Francois Pierre Doray voted and added 9 comments

          Votes added by Francois Pierre Doray

          Code-Review+1

          9 comments

          Patchset-level comments
          Francois Pierre Doray . resolved

          //third_party/blink/renderer/platform/scheduler/ LGTM, with a few suggestions for consistency of naming (I didn't put comments everywhere applicable)

          File cc/trees/layer_tree_host.h
          Line 689, Patchset 26 (Latest): void RequestEfficientScheduling(bool prefer_efficiency) {
          pending_commit_state()->prefer_efficient_scheduling = prefer_efficiency;
          }
          Francois Pierre Doray . unresolved

          Suggestion for consistency of naming:

          ```suggestion
          void RequestEfficientScheduling(bool prefer_efficient_scheduling) {
          pending_commit_state()->prefer_efficient_scheduling = prefer_efficient_scheduling;
          }
          ```
          File components/viz/service/frame_sinks/frame_sink_manager_impl.h
          Line 439, Patchset 26 (Latest): void SetPreferEfficientScheduling(bool efficiency_preferred) const;
          Francois Pierre Doray . unresolved

          Suggestion for consistency of naming:

          ```suggestion
          void SetPreferEfficientScheduling(bool prefer_efficient_scheduling) const;
          ```
          File components/viz/service/frame_sinks/frame_sink_manager_impl.cc
          Line 1055, Patchset 26 (Latest):void FrameSinkManagerImpl::SetPreferEfficientScheduling(
          const bool prefer_efficiency) const {
          if (hint_session_factory_) {
          hint_session_factory_->SetPreferPowerEfficientScheduling(prefer_efficiency);
          }
          }
          Francois Pierre Doray . unresolved

          Suggestion for consistency of naming:

          ```suggestion
          void FrameSinkManagerImpl::SetPreferEfficientScheduling(
          const bool prefer_efficient_scheduling) const {
          if (hint_session_factory_) {
          hint_session_factory_->SetPreferEfficientScheduling(
          prefer_efficient_scheduling);
          }
          }
          ```
          File components/viz/service/performance_hint/hint_session.h
          Line 87, Patchset 26 (Latest): virtual void SetPreferPowerEfficientScheduling(bool prefer_efficiency) = 0;
          Francois Pierre Doray . unresolved

          Suggestion for consistency of naming:

          ```suggestion
          virtual void SetPreferEfficientScheduling(bool prefer_efficient_scheduling) = 0;
          ```
          File components/viz/service/performance_hint/hint_session.cc
          Line 318, Patchset 26 (Latest):void AdpfHintSession::SetPreferPowerEfficientScheduling(
          bool prefer_efficiency) {
          DCHECK_CALLED_ON_VALID_THREAD(factory_->thread_checker_);
          will_prefer_efficiency_ = prefer_efficiency;
          }
          Francois Pierre Doray . unresolved

          Suggestion for consistency of naming:

          ```suggestion
          void AdpfHintSession::SetPreferEfficientScheduling(
          bool prefer_efficient_scheduling) {
          DCHECK_CALLED_ON_VALID_THREAD(factory_->thread_checker_);
          will_prefer_efficiency_ = prefer_efficient_scheduling;
          }
          ```
          Line 426, Patchset 26 (Latest):void HintSessionFactoryImpl::SetPreferPowerEfficientScheduling(
          bool prefer_efficiency) {
          DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
          for (auto& session : hint_sessions_) {
          session->SetPreferPowerEfficientScheduling(prefer_efficiency);
          }
          }
          Francois Pierre Doray . unresolved

          Suggestion for consistency of naming:

          ```suggestion
          void HintSessionFactoryImpl::SetPreferEfficientScheduling(
          bool prefer_efficient_scheduling) {
          DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
          for (auto& session : hint_sessions_) {
          session->SetPreferEfficientScheduling(prefer_efficient_scheduling);
          }
          }
          ```
          File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
          Line 1072, Patchset 26 (Latest): performance_helper_.Check();
          Francois Pierre Doray . unresolved

          Pass `time_now`.

          Line 2862, Patchset 26 (Latest):void MainThreadSchedulerImpl::ApplyPerformanceState(
          const bool prefer_efficiency) {
          DCHECK(base::FeatureList::IsEnabled(kUsePerformanceHelper));
          bool should_send_to_compositor = true;
          #if BUILDFLAG(IS_ANDROID)
          if (kUsePerformanceHelperParam.Get() >= PerformanceHintMode::kAffinity) {
          base::SetCanRunOnBigCore(base::PlatformThread::CurrentId(),
          !prefer_efficiency);
          should_send_to_compositor =
          kUsePerformanceHelperParam.Get() == PerformanceHintMode::kBoth;
          }
          #endif
          // Emit for tracking
          main_thread_only().restrict_cpu_performance = prefer_efficiency;
          if (should_send_to_compositor) {
          for (const auto& widget_scheduler : main_thread_only().widget_schedulers) {
          widget_scheduler->RequestEfficientScheduling(prefer_efficiency);
          }
          }
          }
          Francois Pierre Doray . unresolved

          Suggestion for consistency of naming:

          ```suggestion
          void MainThreadSchedulerImpl::ApplyPerformanceState(
          const bool prefer_efficient_scheduling) {
          DCHECK(base::FeatureList::IsEnabled(kUsePerformanceHelper));
          bool should_send_to_compositor = true;
          #if BUILDFLAG(IS_ANDROID)
          if (kUsePerformanceHelperParam.Get() >= PerformanceHintMode::kAffinity) {
          base::SetCanRunOnBigCore(base::PlatformThread::CurrentId(),
          !prefer_efficient_scheduling);
          should_send_to_compositor =
          kUsePerformanceHelperParam.Get() == PerformanceHintMode::kBoth;
          }
          #endif
          // Emit for tracking
          main_thread_only().prefer_efficient_scheduling = prefer_efficient_scheduling;
          if (should_send_to_compositor) {
          for (const auto& widget_scheduler : main_thread_only().widget_schedulers) {
          widget_scheduler->RequestEfficientScheduling(prefer_efficient_scheduling);
          }
          }
          }
          ```
          Open in Gerrit

          Related details

          Attention is currently required from:
          • Benoit Lize
          • Igor Kraskevich
          • Richard Townsend
          • Yaron Friedman
          Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement is not satisfiedCode-Owners
            • requirement satisfiedCode-Review
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
            Gerrit-Change-Number: 7238073
            Gerrit-PatchSet: 26
            Gerrit-Owner: Richard Townsend <ritow...@google.com>
            Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
            Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
            Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
            Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
            Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
            Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
            Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
            Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
            Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
            Gerrit-CC: Eric Seckler <esec...@chromium.org>
            Gerrit-CC: gwsq
            Gerrit-Attention: Benoit Lize <li...@chromium.org>
            Gerrit-Attention: Richard Townsend <ritow...@google.com>
            Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
            Gerrit-Attention: Igor Kraskevich <krask...@google.com>
            Gerrit-Comment-Date: Fri, 30 Jan 2026 16:25:26 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Richard Townsend (Gerrit)

            unread,
            Jan 30, 2026, 1:20:54 PMJan 30
            to Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
            Attention needed from Benoit Lize, Igor Kraskevich, Vladimir Levin and Yaron Friedman

            Richard Townsend added 1 comment

            Patchset-level comments
            Richard Townsend . resolved

            Hi Vladmir, could you take a look at this CL from a WidgetScheduler perspective?

            Best
            Richard

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Benoit Lize
            • Igor Kraskevich
            • Vladimir Levin
            • Yaron Friedman
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement is not satisfiedCode-Owners
            • requirement satisfiedCode-Review
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
            Gerrit-Change-Number: 7238073
            Gerrit-PatchSet: 26
            Gerrit-Owner: Richard Townsend <ritow...@google.com>
            Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
            Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
            Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
            Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
            Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
            Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
            Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
            Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
            Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
            Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
            Gerrit-CC: Eric Seckler <esec...@chromium.org>
            Gerrit-CC: gwsq
            Gerrit-Attention: Benoit Lize <li...@chromium.org>
            Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
            Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
            Gerrit-Attention: Igor Kraskevich <krask...@google.com>
            Gerrit-Comment-Date: Fri, 30 Jan 2026 18:20:42 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Richard Townsend (Gerrit)

            unread,
            Jan 30, 2026, 2:32:02 PMJan 30
            to Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Yaron Friedman, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
            Attention needed from Benoit Lize, Igor Kraskevich, Vladimir Levin and Yaron Friedman

            Richard Townsend voted and added 8 comments

            Votes added by Richard Townsend

            Commit-Queue+1

            8 comments

            File cc/trees/layer_tree_host.h
            Line 689, Patchset 26: void RequestEfficientScheduling(bool prefer_efficiency) {
            pending_commit_state()->prefer_efficient_scheduling = prefer_efficiency;
            }
            Francois Pierre Doray . resolved

            Suggestion for consistency of naming:

            ```suggestion
            void RequestEfficientScheduling(bool prefer_efficient_scheduling) {
            pending_commit_state()->prefer_efficient_scheduling = prefer_efficient_scheduling;
            }
            ```
            Richard Townsend

            Done

            File components/viz/service/frame_sinks/frame_sink_manager_impl.h
            Line 439, Patchset 26: void SetPreferEfficientScheduling(bool efficiency_preferred) const;
            Francois Pierre Doray . resolved

            Suggestion for consistency of naming:

            ```suggestion
            void SetPreferEfficientScheduling(bool prefer_efficient_scheduling) const;
            ```
            Richard Townsend

            Done

            File components/viz/service/frame_sinks/frame_sink_manager_impl.cc
            Line 1055, Patchset 26:void FrameSinkManagerImpl::SetPreferEfficientScheduling(

            const bool prefer_efficiency) const {
            if (hint_session_factory_) {
            hint_session_factory_->SetPreferPowerEfficientScheduling(prefer_efficiency);
            }
            }
            Francois Pierre Doray . resolved

            Suggestion for consistency of naming:

            ```suggestion
            void FrameSinkManagerImpl::SetPreferEfficientScheduling(
            const bool prefer_efficient_scheduling) const {
            if (hint_session_factory_) {
            hint_session_factory_->SetPreferEfficientScheduling(
            prefer_efficient_scheduling);
            }
            }
            ```
            Richard Townsend

            Done

            File components/viz/service/performance_hint/hint_session.h
            Line 87, Patchset 26: virtual void SetPreferPowerEfficientScheduling(bool prefer_efficiency) = 0;
            Francois Pierre Doray . resolved

            Suggestion for consistency of naming:

            ```suggestion
            virtual void SetPreferEfficientScheduling(bool prefer_efficient_scheduling) = 0;
            ```
            Richard Townsend

            Done

            File components/viz/service/performance_hint/hint_session.cc
            Line 318, Patchset 26:void AdpfHintSession::SetPreferPowerEfficientScheduling(

            bool prefer_efficiency) {
            DCHECK_CALLED_ON_VALID_THREAD(factory_->thread_checker_);
            will_prefer_efficiency_ = prefer_efficiency;
            }
            Francois Pierre Doray . resolved

            Suggestion for consistency of naming:

            ```suggestion
            void AdpfHintSession::SetPreferEfficientScheduling(
            bool prefer_efficient_scheduling) {
            DCHECK_CALLED_ON_VALID_THREAD(factory_->thread_checker_);
            will_prefer_efficiency_ = prefer_efficient_scheduling;
            }
            ```
            Richard Townsend

            Done

            Line 426, Patchset 26:void HintSessionFactoryImpl::SetPreferPowerEfficientScheduling(

            bool prefer_efficiency) {
            DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
            for (auto& session : hint_sessions_) {
            session->SetPreferPowerEfficientScheduling(prefer_efficiency);
            }
            }
            Francois Pierre Doray . resolved

            Suggestion for consistency of naming:

            ```suggestion
            void HintSessionFactoryImpl::SetPreferEfficientScheduling(
            bool prefer_efficient_scheduling) {
            DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
            for (auto& session : hint_sessions_) {
            session->SetPreferEfficientScheduling(prefer_efficient_scheduling);
            }
            }
            ```
            Richard Townsend

            Done

            File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
            Line 1072, Patchset 26: performance_helper_.Check();
            Francois Pierre Doray . resolved

            Pass `time_now`.

            Richard Townsend

            Done

            Line 2862, Patchset 26:void MainThreadSchedulerImpl::ApplyPerformanceState(

            const bool prefer_efficiency) {
            DCHECK(base::FeatureList::IsEnabled(kUsePerformanceHelper));
            bool should_send_to_compositor = true;
            #if BUILDFLAG(IS_ANDROID)
            if (kUsePerformanceHelperParam.Get() >= PerformanceHintMode::kAffinity) {
            base::SetCanRunOnBigCore(base::PlatformThread::CurrentId(),
            !prefer_efficiency);
            should_send_to_compositor =
            kUsePerformanceHelperParam.Get() == PerformanceHintMode::kBoth;
            }
            #endif
            // Emit for tracking
            main_thread_only().restrict_cpu_performance = prefer_efficiency;
            if (should_send_to_compositor) {
            for (const auto& widget_scheduler : main_thread_only().widget_schedulers) {
            widget_scheduler->RequestEfficientScheduling(prefer_efficiency);
            }
            }
            }
            Francois Pierre Doray . resolved

            Suggestion for consistency of naming:

            ```suggestion
            void MainThreadSchedulerImpl::ApplyPerformanceState(
            const bool prefer_efficient_scheduling) {
            DCHECK(base::FeatureList::IsEnabled(kUsePerformanceHelper));
            bool should_send_to_compositor = true;
            #if BUILDFLAG(IS_ANDROID)
            if (kUsePerformanceHelperParam.Get() >= PerformanceHintMode::kAffinity) {
            base::SetCanRunOnBigCore(base::PlatformThread::CurrentId(),
            !prefer_efficient_scheduling);
            should_send_to_compositor =
            kUsePerformanceHelperParam.Get() == PerformanceHintMode::kBoth;
            }
            #endif
            // Emit for tracking
            main_thread_only().prefer_efficient_scheduling = prefer_efficient_scheduling;
            if (should_send_to_compositor) {
            for (const auto& widget_scheduler : main_thread_only().widget_schedulers) {
            widget_scheduler->RequestEfficientScheduling(prefer_efficient_scheduling);
            }
            }
            }
            ```
            Richard Townsend

            Done

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Benoit Lize
            • Igor Kraskevich
            • Vladimir Levin
            • Yaron Friedman
            Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement is not satisfiedCode-Owners
              • requirement satisfiedCode-Review
              • requirement satisfiedReview-Enforcement
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: comment
              Gerrit-Project: chromium/src
              Gerrit-Branch: main
              Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
              Gerrit-Change-Number: 7238073
              Gerrit-PatchSet: 27
              Gerrit-Owner: Richard Townsend <ritow...@google.com>
              Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
              Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
              Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
              Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
              Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
              Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
              Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
              Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
              Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
              Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
              Gerrit-CC: Eric Seckler <esec...@chromium.org>
              Gerrit-CC: gwsq
              Gerrit-Attention: Benoit Lize <li...@chromium.org>
              Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
              Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
              Gerrit-Attention: Igor Kraskevich <krask...@google.com>
              Gerrit-Comment-Date: Fri, 30 Jan 2026 19:31:48 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: Yes
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Yaron Friedman (Gerrit)

              unread,
              Jan 30, 2026, 4:12:15 PMJan 30
              to Richard Townsend, Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
              Attention needed from Benoit Lize, Igor Kraskevich, Richard Townsend and Vladimir Levin

              Yaron Friedman voted and added 2 comments

              Votes added by Yaron Friedman

              Code-Review+1

              2 comments

              Patchset-level comments
              File-level comment, Patchset 27 (Latest):
              Yaron Friedman . resolved

              lgtm, just the one question but I believe is fine

              File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
              Line 2887, Patchset 27 (Latest): performance_helper_.Check();
              Yaron Friedman . unresolved

              is this sufficient for when app goes to background or tab switched? I guess it looks to be on _any_ task run here?

              Historically, we've had bugs with things that rely on "the next frame" to get set correctly because in background there is no next frame...

              So in current soln, if I start a load and am pumping frames, and then switch tabs - togglign visibility but no frame comes in, presumably unregistering for beginmainframeas and we don't have a racey frame come in, will we be left in whatever the last state was or whenever the main thread runs anything this is checked?

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Benoit Lize
              • Igor Kraskevich
              • Richard Townsend
              • Vladimir Levin
              Submit Requirements:
                • requirement satisfiedCode-Coverage
                • requirement is not satisfiedCode-Owners
                • requirement satisfiedCode-Review
                • requirement is not satisfiedNo-Unresolved-Comments
                • requirement satisfiedReview-Enforcement
                Gerrit-Attention: Richard Townsend <ritow...@google.com>
                Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
                Gerrit-Attention: Igor Kraskevich <krask...@google.com>
                Gerrit-Comment-Date: Fri, 30 Jan 2026 21:11:59 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: Yes
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Richard Townsend (Gerrit)

                unread,
                Jan 30, 2026, 4:28:26 PMJan 30
                to Yaron Friedman, Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
                Attention needed from Benoit Lize, Igor Kraskevich and Vladimir Levin

                Richard Townsend added 1 comment

                File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
                Line 2887, Patchset 27 (Latest): performance_helper_.Check();
                Yaron Friedman . resolved

                is this sufficient for when app goes to background or tab switched? I guess it looks to be on _any_ task run here?

                Historically, we've had bugs with things that rely on "the next frame" to get set correctly because in background there is no next frame...

                So in current soln, if I start a load and am pumping frames, and then switch tabs - togglign visibility but no frame comes in, presumably unregistering for beginmainframeas and we don't have a racey frame come in, will we be left in whatever the last state was or whenever the main thread runs anything this is checked?

                Richard Townsend

                It's a good question and this might be a situation where affinity + timeout could be better. Right now, we either:
                1) A global ADPF session including the compositor and all renderers
                2) One ADPF session for compositors and viz, one ADPF session for all renderers.

                Basically, the last frame submitted wins and controls the global state.

                So what might happen in this case:
                1. Start the load. BOOST
                2. Open another tab. BOOST
                3. Other tab completes the load.
                4. Wait a few hundred ms. EFFICIENCY

                This may cause some... interesting behaviour in multi-window scenarios (and is one of the reasons I wanted to do the state tracking purely on the compositor side), so some additional de-bouncing may have to be done if this is perceptible, but eventually the everything will trend to efficiency.

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Benoit Lize
                • Igor Kraskevich
                • Vladimir Levin
                Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement is not satisfiedCode-Owners
                  • requirement satisfiedCode-Review
                  • requirement satisfiedReview-Enforcement
                  Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
                  Gerrit-Attention: Igor Kraskevich <krask...@google.com>
                  Gerrit-Comment-Date: Fri, 30 Jan 2026 21:28:12 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-Has-Labels: No
                  Comment-In-Reply-To: Yaron Friedman <yfri...@chromium.org>
                  satisfied_requirement
                  unsatisfied_requirement
                  open
                  diffy

                  Vladimir Levin (Gerrit)

                  unread,
                  Feb 2, 2026, 2:56:08 PMFeb 2
                  to Richard Townsend, Scott Haseley, Yaron Friedman, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
                  Attention needed from Benoit Lize, Igor Kraskevich and Richard Townsend

                  Vladimir Levin voted and added 1 comment

                  Votes added by Vladimir Levin

                  Code-Review+1

                  1 comment

                  File third_party/blink/renderer/platform/widget/widget_base.cc
                  Line 1928, Patchset 27 (Latest): [[likely]] LayerTreeHost()->RequestEfficientScheduling(
                  Vladimir Levin . resolved

                  style nit: I think we typically put the likely/unlikely attributes after the if conditional before the brace

                  ```
                  if (LayerTreeHost()) [[likely]] {
                  ...
                  }
                  ```
                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Benoit Lize
                  • Igor Kraskevich
                  • Richard Townsend
                  Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement satisfiedCode-Owners
                  • requirement satisfiedCode-Review
                  • requirement satisfiedReview-Enforcement
                  Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                  Gerrit-MessageType: comment
                  Gerrit-Project: chromium/src
                  Gerrit-Branch: main
                  Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
                  Gerrit-Change-Number: 7238073
                  Gerrit-PatchSet: 27
                  Gerrit-Owner: Richard Townsend <ritow...@google.com>
                  Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
                  Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
                  Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
                  Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
                  Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
                  Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
                  Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
                  Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
                  Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                  Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                  Gerrit-CC: Eric Seckler <esec...@chromium.org>
                  Gerrit-CC: Scott Haseley <shas...@chromium.org>
                  Gerrit-CC: gwsq
                  Gerrit-Attention: Benoit Lize <li...@chromium.org>
                  Gerrit-Attention: Richard Townsend <ritow...@google.com>
                  Gerrit-Attention: Igor Kraskevich <krask...@google.com>
                  Gerrit-Comment-Date: Mon, 02 Feb 2026 19:55:52 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-Has-Labels: Yes
                  satisfied_requirement
                  open
                  diffy

                  Scott Haseley (Gerrit)

                  unread,
                  Feb 2, 2026, 3:29:28 PMFeb 2
                  to Richard Townsend, Vladimir Levin, Yaron Friedman, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Eric Seckler, AyeAye, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
                  Attention needed from Benoit Lize, Igor Kraskevich and Richard Townsend

                  Scott Haseley voted and added 4 comments

                  Votes added by Scott Haseley

                  Code-Review+1

                  4 comments

                  Patchset-level comments
                  Scott Haseley . resolved

                  A few drive-by comments, but LGTM.

                  File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
                  Line 118, Patchset 27 (Latest): // Performance
                  Scott Haseley . unresolved

                  Is this incomplete?

                  Line 1065, Patchset 27 (Latest): case UseCase::kDiscreteInputResponse:
                  Scott Haseley . unresolved
                  Note: this is used to detect that we're waiting for the paint/frame after input, and
                  - doesn't cover the full input event (only after the input task finishes), which means JS event handlers aren't covered. kCustomInputHandling might handle more of the discrete input timespan, but I don't fully remember how those overlap.
                  - doesn't cover all discrete input events: input can also run during BeginMainFrame out of the CC task queue, although typically we'd have run another input task beforehand bc of task priorities, in which case the use case should be set.
                  - covers some time when task queues (most, not all) are paused while we're waiting for the paint.

                  So this is fine, but FYI there might room for improvement.
                  File third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.h
                  Line 9, Patchset 27 (Latest):#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_MAIN_THREAD_SCOPED_PERFORMANCE_HELPER_H_
                  Scott Haseley . unresolved

                  Old remnant, i.e. change to match the current file name?

                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Benoit Lize
                  • Igor Kraskevich
                  • Richard Townsend
                  Submit Requirements:
                    • requirement satisfiedCode-Coverage
                    • requirement satisfiedCode-Owners
                    • requirement satisfiedCode-Review
                    • requirement is not satisfiedNo-Unresolved-Comments
                    • requirement satisfiedReview-Enforcement
                    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                    Gerrit-MessageType: comment
                    Gerrit-Project: chromium/src
                    Gerrit-Branch: main
                    Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
                    Gerrit-Change-Number: 7238073
                    Gerrit-PatchSet: 27
                    Gerrit-Owner: Richard Townsend <ritow...@google.com>
                    Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
                    Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
                    Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
                    Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
                    Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
                    Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
                    Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
                    Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
                    Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
                    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                    Gerrit-CC: Eric Seckler <esec...@chromium.org>
                    Gerrit-CC: gwsq
                    Gerrit-Attention: Benoit Lize <li...@chromium.org>
                    Gerrit-Attention: Richard Townsend <ritow...@google.com>
                    Gerrit-Attention: Igor Kraskevich <krask...@google.com>
                    Gerrit-Comment-Date: Mon, 02 Feb 2026 20:29:11 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: Yes
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Richard Townsend (Gerrit)

                    unread,
                    Feb 2, 2026, 4:19:58 PMFeb 2
                    to Chromium Metrics Reviews, Scott Haseley, Vladimir Levin, Yaron Friedman, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Eric Seckler, AyeAye, asvitkine...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
                    Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich, Jonathan Ross, Ken Buchanan, Scott Haseley, Vladimir Levin and Yaron Friedman

                    Richard Townsend voted and added 5 comments

                    Votes added by Richard Townsend

                    Commit-Queue+1

                    5 comments

                    Patchset-level comments
                    File-level comment, Patchset 29 (Latest):
                    Richard Townsend . resolved

                    PS28--PS29:

                    • Experiment configuration added to fieldtrial_testing_config.json. Since there doesn't seem to be an obvious way of scoping "params" within this file, the UsePerformanceHelper's "mode" param has been renamed to "helper_param".
                    • Addressing Scott and @vmp...@chromium.org's comments


                    @yfri...@chromium.org: I think I might need a rubber-stamp for the fieldtrial config changes.

                    File third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
                    Line 118, Patchset 27: // Performance
                    Scott Haseley . resolved

                    Is this incomplete?

                    Richard Townsend

                    Removed in PS29

                    Line 1065, Patchset 27: case UseCase::kDiscreteInputResponse:
                    Scott Haseley . resolved
                    Note: this is used to detect that we're waiting for the paint/frame after input, and
                    - doesn't cover the full input event (only after the input task finishes), which means JS event handlers aren't covered. kCustomInputHandling might handle more of the discrete input timespan, but I don't fully remember how those overlap.
                    - doesn't cover all discrete input events: input can also run during BeginMainFrame out of the CC task queue, although typically we'd have run another input task beforehand bc of task priorities, in which case the use case should be set.
                    - covers some time when task queues (most, not all) are paused while we're waiting for the paint.

                    So this is fine, but FYI there might room for improvement.
                    Richard Townsend

                    Ack: I'm interested primarily into whether this intervention really saves power before fine-tuning the heuristics, but doing more on this seems important.

                    File third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.h
                    Line 9, Patchset 27:#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_MAIN_THREAD_SCOPED_PERFORMANCE_HELPER_H_
                    Scott Haseley . resolved

                    Old remnant, i.e. change to match the current file name?

                    Richard Townsend

                    Actually, unsure why the presubmit doesn't catch that. Addressed in PS29

                    File third_party/blink/renderer/platform/widget/widget_base.cc
                    Line 1928, Patchset 27: [[likely]] LayerTreeHost()->RequestEfficientScheduling(
                    Vladimir Levin . resolved

                    style nit: I think we typically put the likely/unlikely attributes after the if conditional before the brace

                    ```
                    if (LayerTreeHost()) [[likely]] {
                    ...
                    }
                    ```
                    Richard Townsend

                    Done in PS28

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Benoit Lize
                    • Francois Pierre Doray
                    • Igor Kraskevich
                    • Jonathan Ross
                    • Ken Buchanan
                    • Scott Haseley
                    • Vladimir Levin
                    • Yaron Friedman
                    Submit Requirements:
                      • requirement satisfiedCode-Coverage
                      • requirement satisfiedCode-Owners
                      • requirement is not satisfiedCode-Review
                      • requirement is not satisfiedReview-Enforcement
                      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                      Gerrit-MessageType: comment
                      Gerrit-Project: chromium/src
                      Gerrit-Branch: main
                      Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
                      Gerrit-Change-Number: 7238073
                      Gerrit-PatchSet: 29
                      Gerrit-Owner: Richard Townsend <ritow...@google.com>
                      Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
                      Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
                      Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
                      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
                      Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
                      Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
                      Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
                      Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
                      Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
                      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                      Gerrit-CC: Eric Seckler <esec...@chromium.org>
                      Gerrit-CC: gwsq
                      Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
                      Gerrit-Attention: Benoit Lize <li...@chromium.org>
                      Gerrit-Attention: Scott Haseley <shas...@chromium.org>
                      Gerrit-Attention: Ken Buchanan <ke...@chromium.org>
                      Gerrit-Attention: Yaron Friedman <yfri...@chromium.org>
                      Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
                      Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
                      Gerrit-Attention: Igor Kraskevich <krask...@google.com>
                      Gerrit-Comment-Date: Mon, 02 Feb 2026 21:19:50 +0000
                      Gerrit-HasComments: Yes
                      Gerrit-Has-Labels: Yes
                      Comment-In-Reply-To: Scott Haseley <shas...@chromium.org>
                      Comment-In-Reply-To: Vladimir Levin <vmp...@chromium.org>
                      satisfied_requirement
                      unsatisfied_requirement
                      open
                      diffy

                      Yaron Friedman (Gerrit)

                      unread,
                      Feb 2, 2026, 5:18:25 PMFeb 2
                      to Richard Townsend, Chromium Metrics Reviews, Scott Haseley, Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Eric Seckler, AyeAye, asvitkine...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
                      Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich, Jonathan Ross, Ken Buchanan, Richard Townsend, Scott Haseley and Vladimir Levin

                      Yaron Friedman voted and added 1 comment

                      Votes added by Yaron Friedman

                      Code-Review+1

                      1 comment

                      Patchset-level comments
                      Yaron Friedman . resolved

                      stamp for field trial

                      Open in Gerrit

                      Related details

                      Attention is currently required from:
                      • Benoit Lize
                      • Francois Pierre Doray
                      • Igor Kraskevich
                      • Jonathan Ross
                      • Ken Buchanan
                      • Richard Townsend
                      • Scott Haseley
                      • Vladimir Levin
                      Submit Requirements:
                        • requirement satisfiedCode-Coverage
                        • requirement satisfiedCode-Owners
                        • requirement satisfiedCode-Review
                        • requirement satisfiedReview-Enforcement
                        Gerrit-Attention: Richard Townsend <ritow...@google.com>
                        Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
                        Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
                        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
                        Gerrit-Comment-Date: Mon, 02 Feb 2026 22:18:18 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: Yes
                        satisfied_requirement
                        open
                        diffy

                        Richard Townsend (Gerrit)

                        unread,
                        Feb 2, 2026, 7:13:46 PMFeb 2
                        to Yaron Friedman, Chromium Metrics Reviews, Scott Haseley, Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Igor Kraskevich, Benoit Lize, Chromium LUCI CQ, Eric Seckler, AyeAye, asvitkine...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
                        Attention needed from Benoit Lize, Francois Pierre Doray, Igor Kraskevich, Jonathan Ross, Ken Buchanan, Scott Haseley and Vladimir Levin

                        Richard Townsend voted and added 1 comment

                        Votes added by Richard Townsend

                        Commit-Queue+1

                        1 comment

                        Patchset-level comments
                        File-level comment, Patchset 30 (Latest):
                        Richard Townsend . resolved

                        PS30: implements additional hysterisis on the Viz side, the minimum boost is now 4 frames. This should better handle mixing efficiency vs performance hints from different MainThreadSchedulerImpl's: the behaviour is that if any of them requests a boost, we now do it for a minimum of 4 frames. During this time, the MainThreadSchedulerImpl should issue another frame, implementing the de-bounce.


                        Verified - seems to be working as intended: https://ui.perfetto.dev/#!/?s=950a7cb802f366eb2482157b6ab6efeee750de38

                        Open in Gerrit

                        Related details

                        Attention is currently required from:
                        • Benoit Lize
                        • Francois Pierre Doray
                        • Igor Kraskevich
                        • Jonathan Ross
                        • Ken Buchanan
                        • Scott Haseley
                        • Vladimir Levin
                        Submit Requirements:
                        • requirement satisfiedCode-Coverage
                        • requirement satisfiedCode-Owners
                        • requirement satisfiedCode-Review
                        • requirement satisfiedReview-Enforcement
                        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                        Gerrit-MessageType: comment
                        Gerrit-Project: chromium/src
                        Gerrit-Branch: main
                        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
                        Gerrit-Change-Number: 7238073
                        Gerrit-PatchSet: 30
                        Gerrit-Owner: Richard Townsend <ritow...@google.com>
                        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
                        Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
                        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
                        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
                        Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
                        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
                        Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
                        Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
                        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
                        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                        Gerrit-CC: Eric Seckler <esec...@chromium.org>
                        Gerrit-CC: gwsq
                        Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
                        Gerrit-Attention: Benoit Lize <li...@chromium.org>
                        Gerrit-Attention: Scott Haseley <shas...@chromium.org>
                        Gerrit-Attention: Ken Buchanan <ke...@chromium.org>
                        Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
                        Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
                        Gerrit-Attention: Igor Kraskevich <krask...@google.com>
                        Gerrit-Comment-Date: Tue, 03 Feb 2026 00:13:38 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: Yes
                        satisfied_requirement
                        open
                        diffy

                        Igor Kraskevich (Gerrit)

                        unread,
                        Feb 3, 2026, 4:52:58 AMFeb 3
                        to Richard Townsend, Yaron Friedman, Chromium Metrics Reviews, Scott Haseley, Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Benoit Lize, Chromium LUCI CQ, Eric Seckler, AyeAye, asvitkine...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
                        Attention needed from Benoit Lize, Francois Pierre Doray, Jonathan Ross, Ken Buchanan, Richard Townsend, Scott Haseley and Vladimir Levin

                        Igor Kraskevich voted Code-Review+1

                        Code-Review+1
                        Open in Gerrit

                        Related details

                        Attention is currently required from:
                        • Benoit Lize
                        • Francois Pierre Doray
                        • Jonathan Ross
                        • Ken Buchanan
                        • Richard Townsend
                        • Scott Haseley
                        • Vladimir Levin
                        Gerrit-Attention: Richard Townsend <ritow...@google.com>
                        Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
                        Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
                        Gerrit-Comment-Date: Tue, 03 Feb 2026 09:52:42 +0000
                        Gerrit-HasComments: No
                        Gerrit-Has-Labels: Yes
                        satisfied_requirement
                        open
                        diffy

                        Richard Townsend (Gerrit)

                        unread,
                        Feb 3, 2026, 7:23:20 AMFeb 3
                        to Igor Kraskevich, Yaron Friedman, Chromium Metrics Reviews, Scott Haseley, Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Benoit Lize, Chromium LUCI CQ, Eric Seckler, AyeAye, asvitkine...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
                        Attention needed from Benoit Lize, Francois Pierre Doray, Jonathan Ross, Ken Buchanan, Scott Haseley and Vladimir Levin

                        Richard Townsend voted and added 1 comment

                        Votes added by Richard Townsend

                        Commit-Queue+2

                        1 comment

                        Patchset-level comments
                        Richard Townsend . resolved

                        Thanks for the reviews all! Sending to CQ.

                        Best
                        Richard

                        Open in Gerrit

                        Related details

                        Attention is currently required from:
                        • Benoit Lize
                        • Francois Pierre Doray
                        • Jonathan Ross
                        • Ken Buchanan
                        • Scott Haseley
                        • Vladimir Levin
                        Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
                        Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
                        Gerrit-Comment-Date: Tue, 03 Feb 2026 12:23:09 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: Yes
                        satisfied_requirement
                        open
                        diffy

                        Chromium LUCI CQ (Gerrit)

                        unread,
                        Feb 3, 2026, 7:27:45 AMFeb 3
                        to Richard Townsend, Igor Kraskevich, Yaron Friedman, Chromium Metrics Reviews, Scott Haseley, Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Benoit Lize, Eric Seckler, AyeAye, asvitkine...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org

                        Chromium LUCI CQ submitted the change

                        Change information

                        Commit message:
                        ADPF adaptive mode

                        * Boosts via MainThreadScheduler's WillBeginFrame regular tick
                        * PerformanceHelper can set affinity or drive ADPF efficiency mode (or
                        both!)

                        Example command lines:
                        --enable-features=EnableAdpfEfficiencyMode:mode/adaptive,UsePerformanceHelper:helper_mode/compositor
                        --enable-features=EnableAdpfEfficiencyMode:mode/adaptive,UsePerformanceHelper:helper_mode/both
                        --enable-features=UsePerformanceHelper:mode/affinity

                        For testing/perf notes, see the CL.
                        Bug: 464505581
                        Change-Id: If5dced1da08bf585270a3354eab62576a5203161
                        Reviewed-by: Igor Kraskevich <krask...@google.com>
                        Reviewed-by: Yaron Friedman <yfri...@chromium.org>
                        Commit-Queue: Richard Townsend <ritow...@google.com>
                        Cr-Commit-Position: refs/heads/main@{#1578702}
                        Files:
                        • M cc/trees/commit_state.cc
                        • M cc/trees/commit_state.h
                        • M cc/trees/layer_tree_host.h
                        • M cc/trees/layer_tree_host_impl.cc
                        • M cc/trees/layer_tree_host_impl.h
                        • M components/viz/common/quads/compositor_frame_metadata.h
                        • M components/viz/service/frame_sinks/compositor_frame_sink_support.cc
                        • M components/viz/service/frame_sinks/frame_sink_manager_impl.cc
                        • M components/viz/service/frame_sinks/frame_sink_manager_impl.h
                        • M components/viz/service/performance_hint/hint_session.cc
                        • M components/viz/service/performance_hint/hint_session.h
                        • M services/viz/public/cpp/compositing/compositor_frame_metadata_mojom_traits.cc
                        • M services/viz/public/cpp/compositing/compositor_frame_metadata_mojom_traits.h
                        • M services/viz/public/mojom/compositing/compositor_frame_metadata.mojom
                        • M testing/variations/fieldtrial_testing_config.json
                        • M third_party/blink/renderer/platform/scheduler/BUILD.gn
                        • 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/main_thread/main_thread_scheduler_impl_unittest.cc
                        • A third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.cc
                        • A third_party/blink/renderer/platform/scheduler/main_thread/performance_helper.h
                        • A third_party/blink/renderer/platform/scheduler/main_thread/performance_helper_unittest.cc
                        • M third_party/blink/renderer/platform/scheduler/main_thread/widget_scheduler_impl.h
                        • M third_party/blink/renderer/platform/scheduler/public/widget_scheduler.h
                        • M third_party/blink/renderer/platform/widget/widget_base.cc
                        • M third_party/blink/renderer/platform/widget/widget_base.h
                        Change size: L
                        Delta: 26 files changed, 470 insertions(+), 13 deletions(-)
                        Branch: refs/heads/main
                        Submit Requirements:
                        • requirement satisfiedCode-Review: +1 by Yaron Friedman, +1 by Igor Kraskevich
                        Open in Gerrit
                        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                        Gerrit-MessageType: merged
                        Gerrit-Project: chromium/src
                        Gerrit-Branch: main
                        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
                        Gerrit-Change-Number: 7238073
                        Gerrit-PatchSet: 31
                        Gerrit-Owner: Richard Townsend <ritow...@google.com>
                        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
                        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
                        Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
                        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
                        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
                        Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
                        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
                        Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
                        Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
                        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
                        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                        open
                        diffy
                        satisfied_requirement

                        Etienne Pierre-Doray (Gerrit)

                        unread,
                        Feb 9, 2026, 5:51:30 PM (12 days ago) Feb 9
                        to Chromium LUCI CQ, Richard Townsend, Igor Kraskevich, Yaron Friedman, Chromium Metrics Reviews, Scott Haseley, Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Benoit Lize, Eric Seckler, AyeAye, asvitkine...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org
                        Attention needed from Richard Townsend

                        Etienne Pierre-Doray added 1 comment

                        File components/viz/service/performance_hint/hint_session.cc
                        Line 288, Patchset 31 (Latest): TRACE_EVENT_ASYNC_BEGIN1("android.adpf", "AdpfHintSession::Boost", this,
                        "session", (uintptr_t)this);
                        Etienne Pierre-Doray . unresolved

                        Drive-by: TRACE_EVENT_ASYNC_* is banned by PRESUBMIT.py [1], does the presubmit not work?
                        https://source.chromium.org/chromium/chromium/src/+/main:PRESUBMIT.py;l=1774?q=TRACE_EVENT_ASYNC&ss=chromium

                        Open in Gerrit

                        Related details

                        Attention is currently required from:
                        • Richard Townsend
                        Submit Requirements:
                        • requirement satisfiedCode-Coverage
                        • requirement satisfiedCode-Owners
                        • requirement satisfiedCode-Review
                        • requirement satisfiedReview-Enforcement
                        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                        Gerrit-MessageType: comment
                        Gerrit-Project: chromium/src
                        Gerrit-Branch: main
                        Gerrit-Change-Id: If5dced1da08bf585270a3354eab62576a5203161
                        Gerrit-Change-Number: 7238073
                        Gerrit-PatchSet: 31
                        Gerrit-Owner: Richard Townsend <ritow...@google.com>
                        Gerrit-Reviewer: Benoit Lize <li...@chromium.org>
                        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
                        Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
                        Gerrit-Reviewer: Igor Kraskevich <krask...@google.com>
                        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
                        Gerrit-Reviewer: Ken Buchanan <ke...@chromium.org>
                        Gerrit-Reviewer: Richard Townsend <ritow...@google.com>
                        Gerrit-Reviewer: Scott Haseley <shas...@chromium.org>
                        Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
                        Gerrit-Reviewer: Yaron Friedman <yfri...@chromium.org>
                        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                        Gerrit-CC: Eric Seckler <esec...@chromium.org>
                        Gerrit-CC: Etienne Pierre-Doray <etie...@chromium.org>
                        Gerrit-CC: gwsq
                        Gerrit-Attention: Richard Townsend <ritow...@google.com>
                        Gerrit-Comment-Date: Mon, 09 Feb 2026 22:51:25 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: No
                        satisfied_requirement
                        open
                        diffy

                        Richard Townsend (Gerrit)

                        unread,
                        Feb 9, 2026, 7:55:38 PM (12 days ago) Feb 9
                        to Chromium LUCI CQ, Etienne Pierre-Doray, Igor Kraskevich, Yaron Friedman, Chromium Metrics Reviews, Scott Haseley, Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Benoit Lize, Eric Seckler, AyeAye, asvitkine...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org

                        Richard Townsend added 1 comment

                        File components/viz/service/performance_hint/hint_session.cc
                        Line 288, Patchset 31 (Latest): TRACE_EVENT_ASYNC_BEGIN1("android.adpf", "AdpfHintSession::Boost", this,
                        "session", (uintptr_t)this);
                        Etienne Pierre-Doray . resolved

                        Drive-by: TRACE_EVENT_ASYNC_* is banned by PRESUBMIT.py [1], does the presubmit not work?
                        https://source.chromium.org/chromium/chromium/src/+/main:PRESUBMIT.py;l=1774?q=TRACE_EVENT_ASYNC&ss=chromium

                        Richard Townsend

                        It looks like... yes the presubmit worked, but because it's a warning and not an error, the bot went green and I didn't think to check the log:

                        https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8690886898536032529/+/u/presubmit/stdout

                        I will do a follow-up CL to bring the code into compliance.

                        Open in Gerrit

                        Related details

                        Attention set is empty
                        Gerrit-Comment-Date: Tue, 10 Feb 2026 00:55:33 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: No
                        Comment-In-Reply-To: Etienne Pierre-Doray <etie...@chromium.org>
                        satisfied_requirement
                        open
                        diffy

                        Etienne Pierre-Doray (Gerrit)

                        unread,
                        Feb 10, 2026, 2:42:11 PM (12 days ago) Feb 10
                        to Chromium LUCI CQ, Richard Townsend, Igor Kraskevich, Yaron Friedman, Chromium Metrics Reviews, Scott Haseley, Vladimir Levin, Francois Pierre Doray, Ken Buchanan, Chromium IPC Reviews, Code Review Nudger, Jonathan Ross, Benoit Lize, Eric Seckler, AyeAye, asvitkine...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, blink-...@chromium.org, scheduler-...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, chikamu...@chromium.org, mfoltz+wa...@chromium.org, cc-...@chromium.org

                        Etienne Pierre-Doray added 1 comment

                        File components/viz/service/performance_hint/hint_session.cc
                        Line 288, Patchset 31 (Latest): TRACE_EVENT_ASYNC_BEGIN1("android.adpf", "AdpfHintSession::Boost", this,
                        "session", (uintptr_t)this);
                        Etienne Pierre-Doray . resolved

                        Drive-by: TRACE_EVENT_ASYNC_* is banned by PRESUBMIT.py [1], does the presubmit not work?
                        https://source.chromium.org/chromium/chromium/src/+/main:PRESUBMIT.py;l=1774?q=TRACE_EVENT_ASYNC&ss=chromium

                        Richard Townsend

                        It looks like... yes the presubmit worked, but because it's a warning and not an error, the bot went green and I didn't think to check the log:

                        https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8690886898536032529/+/u/presubmit/stdout

                        I will do a follow-up CL to bring the code into compliance.

                        Etienne Pierre-Doray

                        Ah ok thanks!
                        I'll see if this can show red on bots.

                        Gerrit-Comment-Date: Tue, 10 Feb 2026 19:42:05 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: No
                        Comment-In-Reply-To: Richard Townsend <ritow...@google.com>
                        Comment-In-Reply-To: Etienne Pierre-Doray <etie...@chromium.org>
                        satisfied_requirement
                        open
                        diffy
                        Reply all
                        Reply to author
                        Forward
                        0 new messages