cppgc: Restore page decommitting on Windows [v8/v8 : main]

0 views
Skip to first unread message

Francois Pierre Doray (Gerrit)

unread,
Nov 21, 2025, 4:30:34 PMNov 21
to Michael Lippautz, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
Attention needed from Michael Lippautz

Francois Pierre Doray added 1 comment

Patchset-level comments
File-level comment, Patchset 5 (Latest):
Francois Pierre Doray . resolved

Hi Michael!
I think this resolves the PMF regression discussed at go/blink-gc-regression-m133. Let me know if the change makes sense and/or feel free to take ownership of it.
Thanks.

Open in Gerrit

Related details

Attention is currently required from:
  • Michael Lippautz
Submit Requirements:
  • requirement is not 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: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
Gerrit-Change-Number: 7187747
Gerrit-PatchSet: 5
Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
Gerrit-CC: Hannes Payer <hpa...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Comment-Date: Fri, 21 Nov 2025 21:30:32 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
unsatisfied_requirement
open
diffy

Michael Lippautz (Gerrit)

unread,
Nov 24, 2025, 9:16:12 AMNov 24
to Francois Pierre Doray, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
Attention needed from Francois Pierre Doray

Michael Lippautz added 3 comments

Patchset-level comments
Francois Pierre Doray . resolved

Hi Michael!
I think this resolves the PMF regression discussed at go/blink-gc-regression-m133. Let me know if the change makes sense and/or feel free to take ownership of it.
Thanks.

Michael Lippautz

I think this is too aggressive and not consistent between other memory used in V8.

That said, I see that there's some hooks missing which we should fix. Ideally, we'd even go further an integrate this pool here into the MemoryPool in V8 that we want to clear more often. I filed https://issues.chromium.org/u/1/issues/463098735 to track this.

Commit Message
Line 20, Patchset 5 (Latest):to skip releasing pooled pages back to the OS entirely.
Michael Lippautz . unresolved

This is the behavior that we want and now use consistently across V8's managed memory.

File src/heap/cppgc/sweeper.cc
Line 1335, Patchset 5 (Parent): FreeMemoryHandling::kDiscardWherePossible) {
Michael Lippautz . unresolved

Removing this means that there's no pool anymore for physical pages and we merely keep the reservations alive.

The V8 condition is similarly guarded: https://source.chromium.org/chromium/chromium/src/+/main:v8/src/heap/sweeper.cc;l=913;drc=db569cd7847d479358bd391a18b2c28393803333;bpv=1;bpt=1

Open in Gerrit

Related details

Attention is currently required from:
  • Francois Pierre Doray
Submit Requirements:
    • 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: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
    Gerrit-Change-Number: 7187747
    Gerrit-PatchSet: 5
    Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Comment-Date: Mon, 24 Nov 2025 14:16:08 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Francois Pierre Doray <fdo...@chromium.org>
    unsatisfied_requirement
    open
    diffy

    chromeperf@appspot.gserviceaccount.com (Gerrit)

    unread,
    Nov 24, 2025, 10:10:40 AMNov 24
    to Francois Pierre Doray, Michael Lippautz, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Francois Pierre Doray

    Message from chrom...@appspot.gserviceaccount.com

    📍 Job mac-m1_mini_2020-perf/speedometer3 complete.

    See results at: https://pinpoint-dot-chromeperf.appspot.com/job/171690ca310000

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Francois Pierre Doray
    Submit Requirements:
    • 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: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
    Gerrit-Change-Number: 7187747
    Gerrit-PatchSet: 5
    Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Comment-Date: Mon, 24 Nov 2025 15:10:36 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    Francois Pierre Doray (Gerrit)

    unread,
    Nov 25, 2025, 11:54:40 AM (13 days ago) Nov 25
    to chrom...@appspot.gserviceaccount.com, Michael Lippautz, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Michael Lippautz

    Francois Pierre Doray added 5 comments

    Patchset-level comments
    File-level comment, Patchset 5:
    Francois Pierre Doray . unresolved

    Hi Michael!
    I think this resolves the PMF regression discussed at go/blink-gc-regression-m133. Let me know if the change makes sense and/or feel free to take ownership of it.
    Thanks.

    Michael Lippautz

    I think this is too aggressive and not consistent between other memory used in V8.

    That said, I see that there's some hooks missing which we should fix. Ideally, we'd even go further an integrate this pool here into the MemoryPool in V8 that we want to clear more often. I filed https://issues.chromium.org/u/1/issues/463098735 to track this.

    Francois Pierre Doray

    The latest patch set only releases pooled pages on memory reducing GCs, which was the behavior prior to crrev.com/c/6074477 + crrev.com/c/6088019, I believe. Is that the desired behavior?

    You're right that there are opportunities for further improvements. But we should fix the unintentional removal of pool decommit on memory reducing GCs introduced by crrev.com/c/6074477 + crrev.com/c/6088019 in the meantime?

    Francois Pierre Doray . resolved

    Please take another look, or feel free to chat/GVC.

    Commit Message
    Line 20, Patchset 5:to skip releasing pooled pages back to the OS entirely.
    Michael Lippautz . unresolved

    This is the behavior that we want and now use consistently across V8's managed memory.

    Francois Pierre Doray

    The desired behavior is to decommit the pool only on memory reducing GCs, right? Not to never decommit it?

    File src/heap/cppgc/sweeper.cc
    Line 1335, Patchset 5 (Parent): FreeMemoryHandling::kDiscardWherePossible) {
    Michael Lippautz . resolved

    Removing this means that there's no pool anymore for physical pages and we merely keep the reservations alive.

    The V8 condition is similarly guarded: https://source.chromium.org/chromium/chromium/src/+/main:v8/src/heap/sweeper.cc;l=913;drc=db569cd7847d479358bd391a18b2c28393803333;bpv=1;bpt=1

    Francois Pierre Doray

    Addressed in latest patch set

    Line 1336, Patchset 9 (Latest): heap_.heap()->page_backend()->ReleasePooledPages();
    Francois Pierre Doray . unresolved

    This is correct if ReleasePooledPages() decommits pages, which is the case when `decommit_pooled_pages` is true (https://source.chromium.org/chromium/chromium/src/+/main:v8/src/flags/flag-definitions.h;l=1048;drc=b32663066c4707a90f117b579f1993c7b74a0ad1).

    Can we remove that flag?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Michael Lippautz
    Submit Requirements:
    • 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: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
    Gerrit-Change-Number: 7187747
    Gerrit-PatchSet: 9
    Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Comment-Date: Tue, 25 Nov 2025 16:54:37 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Michael Lippautz <mlip...@chromium.org>
    unsatisfied_requirement
    open
    diffy

    Michael Lippautz (Gerrit)

    unread,
    Nov 25, 2025, 12:15:10 PM (13 days ago) Nov 25
    to Francois Pierre Doray, chrom...@appspot.gserviceaccount.com, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Francois Pierre Doray

    Michael Lippautz added 5 comments

    Patchset-level comments
    Francois Pierre Doray . unresolved

    Hi Michael!
    I think this resolves the PMF regression discussed at go/blink-gc-regression-m133. Let me know if the change makes sense and/or feel free to take ownership of it.
    Thanks.

    Michael Lippautz

    I think this is too aggressive and not consistent between other memory used in V8.

    That said, I see that there's some hooks missing which we should fix. Ideally, we'd even go further an integrate this pool here into the MemoryPool in V8 that we want to clear more often. I filed https://issues.chromium.org/u/1/issues/463098735 to track this.

    Francois Pierre Doray

    The latest patch set only releases pooled pages on memory reducing GCs, which was the behavior prior to crrev.com/c/6074477 + crrev.com/c/6088019, I believe. Is that the desired behavior?

    You're right that there are opportunities for further improvements. But we should fix the unintentional removal of pool decommit on memory reducing GCs introduced by crrev.com/c/6074477 + crrev.com/c/6088019 in the meantime?

    Michael Lippautz

    The latest patch set only releases pooled pages on memory reducing GCs, which was the behavior prior to crrev.com/c/6074477 + crrev.com/c/6088019, I believe. Is that the desired behavior?

    Yes.

    You're right that there are opportunities for further improvements. But we should fix the unintentional removal of pool decommit on memory reducing GCs introduced by crrev.com/c/6074477 + crrev.com/c/6088019 in the meantime?

    I think we should fix the unintentional removal in here.

    Michael Lippautz . resolved

    I think the latest PS works.

    Commit Message
    Line 20, Patchset 5:to skip releasing pooled pages back to the OS entirely.
    Michael Lippautz . resolved

    This is the behavior that we want and now use consistently across V8's managed memory.

    Francois Pierre Doray

    The desired behavior is to decommit the pool only on memory reducing GCs, right? Not to never decommit it?

    Michael Lippautz

    Yes, only on memory reducing GCs.

    File src/heap/cppgc/sweeper.cc
    Line 43, Patchset 9 (Latest):bool ShouldDiscardMemory(
    Michael Lippautz . unresolved

    nit: constexpr

    Line 1336, Patchset 9 (Latest): heap_.heap()->page_backend()->ReleasePooledPages();
    Francois Pierre Doray . unresolved

    This is correct if ReleasePooledPages() decommits pages, which is the case when `decommit_pooled_pages` is true (https://source.chromium.org/chromium/chromium/src/+/main:v8/src/flags/flag-definitions.h;l=1048;drc=b32663066c4707a90f117b579f1993c7b74a0ad1).

    Can we remove that flag?

    Michael Lippautz

    Yes, lets also clean up the flag.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Francois Pierre Doray
    Submit Requirements:
    • 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: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
    Gerrit-Change-Number: 7187747
    Gerrit-PatchSet: 9
    Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Comment-Date: Tue, 25 Nov 2025 17:15:06 +0000
    unsatisfied_requirement
    open
    diffy

    chromeperf@appspot.gserviceaccount.com (Gerrit)

    unread,
    Nov 25, 2025, 1:16:04 PM (13 days ago) Nov 25
    to Francois Pierre Doray, Michael Lippautz, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Francois Pierre Doray

    Message from chrom...@appspot.gserviceaccount.com

    📍 Job mac-m1_mini_2020-perf/speedometer3 complete.

    See results at: https://pinpoint-dot-chromeperf.appspot.com/job/10601c59310000

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Francois Pierre Doray
    Submit Requirements:
    • 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: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
    Gerrit-Change-Number: 7187747
    Gerrit-PatchSet: 9
    Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Comment-Date: Tue, 25 Nov 2025 18:16:00 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    chromeperf@appspot.gserviceaccount.com (Gerrit)

    unread,
    Nov 25, 2025, 1:25:37 PM (13 days ago) Nov 25
    to Francois Pierre Doray, Michael Lippautz, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Francois Pierre Doray

    Message from chrom...@appspot.gserviceaccount.com

    📍 Job mac-m1_mini_2020-perf/jetstream2 complete.

    See results at: https://pinpoint-dot-chromeperf.appspot.com/job/11ddcbd2310000

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Francois Pierre Doray
    Submit Requirements:
    • 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: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
    Gerrit-Change-Number: 7187747
    Gerrit-PatchSet: 9
    Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
    Gerrit-Comment-Date: Tue, 25 Nov 2025 18:25:34 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    Francois Pierre Doray (Gerrit)

    unread,
    Nov 27, 2025, 8:40:38 PM (11 days ago) Nov 27
    to chrom...@appspot.gserviceaccount.com, Michael Lippautz, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Michael Lippautz

    Francois Pierre Doray added 4 comments

    Patchset-level comments
    File-level comment, Patchset 5:
    Francois Pierre Doray . resolved

    Hi Michael!
    I think this resolves the PMF regression discussed at go/blink-gc-regression-m133. Let me know if the change makes sense and/or feel free to take ownership of it.
    Thanks.

    Michael Lippautz

    I think this is too aggressive and not consistent between other memory used in V8.

    That said, I see that there's some hooks missing which we should fix. Ideally, we'd even go further an integrate this pool here into the MemoryPool in V8 that we want to clear more often. I filed https://issues.chromium.org/u/1/issues/463098735 to track this.

    Francois Pierre Doray

    The latest patch set only releases pooled pages on memory reducing GCs, which was the behavior prior to crrev.com/c/6074477 + crrev.com/c/6088019, I believe. Is that the desired behavior?

    You're right that there are opportunities for further improvements. But we should fix the unintentional removal of pool decommit on memory reducing GCs introduced by crrev.com/c/6074477 + crrev.com/c/6088019 in the meantime?

    Michael Lippautz

    The latest patch set only releases pooled pages on memory reducing GCs, which was the behavior prior to crrev.com/c/6074477 + crrev.com/c/6088019, I believe. Is that the desired behavior?

    Yes.

    You're right that there are opportunities for further improvements. But we should fix the unintentional removal of pool decommit on memory reducing GCs introduced by crrev.com/c/6074477 + crrev.com/c/6088019 in the meantime?

    I think we should fix the unintentional removal in here.

    Francois Pierre Doray

    Acknowledged

    Francois Pierre Doray . resolved

    Please take a look. Thanks.

    File src/heap/cppgc/sweeper.cc
    Line 43, Patchset 9:bool ShouldDiscardMemory(
    Michael Lippautz . resolved

    nit: constexpr

    Francois Pierre Doray

    Done

    Line 1336, Patchset 9: heap_.heap()->page_backend()->ReleasePooledPages();
    Francois Pierre Doray . resolved

    This is correct if ReleasePooledPages() decommits pages, which is the case when `decommit_pooled_pages` is true (https://source.chromium.org/chromium/chromium/src/+/main:v8/src/flags/flag-definitions.h;l=1048;drc=b32663066c4707a90f117b579f1993c7b74a0ad1).

    Can we remove that flag?

    Michael Lippautz

    Yes, lets also clean up the flag.

    Attention is currently required from:
    • Michael Lippautz
    Submit Requirements:
      • requirement is not 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: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
      Gerrit-Change-Number: 7187747
      Gerrit-PatchSet: 10
      Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
      Gerrit-CC: Hannes Payer <hpa...@chromium.org>
      Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Comment-Date: Fri, 28 Nov 2025 01:40:36 +0000
      unsatisfied_requirement
      open
      diffy

      Michael Lippautz (Gerrit)

      unread,
      Nov 28, 2025, 7:59:53 AM (10 days ago) Nov 28
      to Francois Pierre Doray, chrom...@appspot.gserviceaccount.com, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Francois Pierre Doray

      Michael Lippautz voted and added 1 comment

      Votes added by Michael Lippautz

      Code-Review+1

      1 comment

      Patchset-level comments
      File-level comment, Patchset 10 (Latest):
      Michael Lippautz . resolved

      lgtm, thanks!

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Francois Pierre Doray
      Submit Requirements:
      • 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: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
      Gerrit-Change-Number: 7187747
      Gerrit-PatchSet: 10
      Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
      Gerrit-CC: Hannes Payer <hpa...@chromium.org>
      Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Comment-Date: Fri, 28 Nov 2025 12:59:49 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Francois Pierre Doray (Gerrit)

      unread,
      Nov 28, 2025, 4:32:55 PM (10 days ago) Nov 28
      to Dominik Inführ, Michael Lippautz, chrom...@appspot.gserviceaccount.com, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Dominik Inführ

      Francois Pierre Doray voted and added 1 comment

      Votes added by Francois Pierre Doray

      Auto-Submit+1

      1 comment

      Patchset-level comments
      Francois Pierre Doray . resolved

      dinfuehr@: I'm not a V8 committer. Please take a look as V8 committer to meet the 2 committers CR+1 requirement. Thanks!

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dominik Inführ
      Submit Requirements:
      • 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: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
      Gerrit-Change-Number: 7187747
      Gerrit-PatchSet: 10
      Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
      Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
      Gerrit-CC: Hannes Payer <hpa...@chromium.org>
      Gerrit-Attention: Dominik Inführ <dinf...@chromium.org>
      Gerrit-Comment-Date: Fri, 28 Nov 2025 21:32:53 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Francois Pierre Doray (Gerrit)

      unread,
      Dec 1, 2025, 8:47:41 AM (7 days ago) Dec 1
      to Anton Bikineev, Michael Lippautz, chrom...@appspot.gserviceaccount.com, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Anton Bikineev

      Francois Pierre Doray added 1 comment

      Patchset-level comments
      Francois Pierre Doray . resolved

      +bikineev@ (in replacement of dinfuehr who is OOO): Can you provide CR+1? I'm not a V8 committer so I need a 2nd CR+1 to land this. Thanks a lot!

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Anton Bikineev
      Submit Requirements:
      • 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: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
      Gerrit-Change-Number: 7187747
      Gerrit-PatchSet: 10
      Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Anton Bikineev <biki...@chromium.org>
      Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
      Gerrit-CC: Hannes Payer <hpa...@chromium.org>
      Gerrit-Attention: Anton Bikineev <biki...@chromium.org>
      Gerrit-Comment-Date: Mon, 01 Dec 2025 13:47:39 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Etienne Pierre-Doray (Gerrit)

      unread,
      Dec 1, 2025, 10:01:23 AM (7 days ago) Dec 1
      to Francois Pierre Doray, Anton Bikineev, Michael Lippautz, chrom...@appspot.gserviceaccount.com, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Anton Bikineev and Francois Pierre Doray

      Etienne Pierre-Doray voted

      Code-Review+1
      Commit-Queue+2
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Anton Bikineev
      • Francois Pierre Doray
      Submit Requirements:
      • 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: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
      Gerrit-Change-Number: 7187747
      Gerrit-PatchSet: 10
      Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Anton Bikineev <biki...@chromium.org>
      Gerrit-Reviewer: Etienne Pierre-Doray <etie...@chromium.org>
      Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
      Gerrit-CC: Hannes Payer <hpa...@chromium.org>
      Gerrit-Attention: Anton Bikineev <biki...@chromium.org>
      Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Comment-Date: Mon, 01 Dec 2025 15:01:15 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      V8 LUCI CQ (Gerrit)

      unread,
      Dec 1, 2025, 11:03:36 AM (7 days ago) Dec 1
      to Francois Pierre Doray, Etienne Pierre-Doray, Anton Bikineev, Michael Lippautz, chrom...@appspot.gserviceaccount.com, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com

      V8 LUCI CQ submitted the change

      Change information

      Commit message:
      cppgc: Restore page decommitting on Windows

      Recent CLs (crrev.com/c/6074477 and crrev.com/c/6088019) disabled memory
      discarding from cppgc on Windows, which was known to be problematic
      (go/issues-with-discard-on-windows). However, this change
      unintentionally introduced a regression in Committed Memory (Private
      Memory Footprint). The root cause is that the call to
      `PageBackend::ReleasePooledPages()` at the end of a sweep cycle was
      guarded by `free_memory_handling ==
      FreeMemoryHandling::kDiscardWherePossible`, which became always false on
      Windows. This call does not discard memory, it decommits memory [1], so
      it shouldn't have been always inhibited on Windows.

      To fix this problem, this CL changes the values in `FreeMemoryHandling`
      to `kRetainMemory` and `kReleaseMemory`. `Sweeper::Start()` no longer
      overrides `free_memory_handling` based on `CanDiscardMemory()`. Instead,
      `Sweeper` guards each discard memory operation with
      `free_memory_handling == FreeMemoryHandling::kReleaseMemory` *and*
      `CanDiscardMemory()`. The call to `PageBackend::ReleasePooledPages()` at
      the end of a sweep cycle is guarded only by `free_memory_handling ==
      FreeMemoryHandling::kReleaseMemory` (not by `CanDiscardMemory()`).

      This will reduce 99th of total PMF by a few gigabytes
      go/uma-blink-gc-regression-timeline-2025

      [1] Assuming that `decommit_pooled_pages` flag is true, which is the
      default
      https://source.chromium.org/chromium/chromium/src/+/main:v8/src/flags/flag-definitions.h;l=1044;drc=db569cd7847d479358bd391a18b2c28393803333
      Bug: 378017037
      Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
      Reviewed-by: Michael Lippautz <mlip...@chromium.org>
      Auto-Submit: Francois Pierre Doray <fdo...@chromium.org>
      Commit-Queue: Etienne Pierre-Doray <etie...@chromium.org>
      Reviewed-by: Etienne Pierre-Doray <etie...@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#104036}
      Files:
      • M src/heap/cppgc-js/cpp-heap.cc
      • M src/heap/cppgc/gc-invoker.cc
      • M src/heap/cppgc/heap-config.h
      • M src/heap/cppgc/heap.cc
      • M src/heap/cppgc/object-allocator.cc
      • M src/heap/cppgc/sweeper.cc
      • M test/unittests/heap/cppgc/heap-statistics-collector-unittest.cc
      • M test/unittests/heap/cppgc/tests.h
      Change size: M
      Delta: 8 files changed, 33 insertions(+), 34 deletions(-)
      Branch: refs/heads/main
      Submit Requirements:
      • requirement satisfiedCode-Review: +1 by Etienne Pierre-Doray, +1 by Michael Lippautz
      Open in Gerrit
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: merged
      Gerrit-Project: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
      Gerrit-Change-Number: 7187747
      Gerrit-PatchSet: 11
      Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Anton Bikineev <biki...@chromium.org>
      Gerrit-Reviewer: Etienne Pierre-Doray <etie...@chromium.org>
      Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
      open
      diffy
      satisfied_requirement

      Anton Bikineev (Gerrit)

      unread,
      Dec 2, 2025, 3:58:50 AM (6 days ago) Dec 2
      to V8 LUCI CQ, François Doray, Etienne Pierre-Doray, Michael Lippautz, chrom...@appspot.gserviceaccount.com, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com

      Anton Bikineev voted and added 1 comment

      Votes added by Anton Bikineev

      Code-Review+1

      1 comment

      Patchset-level comments
      File-level comment, Patchset 11 (Latest):
      Anton Bikineev . resolved

      lgtm, thanks!

      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
      • 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: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
      Gerrit-Change-Number: 7187747
      Gerrit-PatchSet: 11
      Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Anton Bikineev <biki...@chromium.org>
      Gerrit-Reviewer: Etienne Pierre-Doray <etie...@chromium.org>
      Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
      Gerrit-CC: Hannes Payer <hpa...@chromium.org>
      Gerrit-Comment-Date: Tue, 02 Dec 2025 08:58:46 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      weicong yu (Gerrit)

      unread,
      Dec 2, 2025, 10:22:46 PM (6 days ago) Dec 2
      to V8 LUCI CQ, Francois Pierre Doray, Anton Bikineev, Etienne Pierre-Doray, Michael Lippautz, chrom...@appspot.gserviceaccount.com, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Francois Pierre Doray

      weicong yu added 2 comments

      File src/heap/cppgc/sweeper.cc
      Line 45, Patchset 11 (Latest): return Sweeper::CanDiscardMemory() &&
      weicong yu . unresolved
      ```
      static constexpr bool CanDiscardMemory() {
      #if defined(V8_OS_WIN)
      // Discarding memory on Windows does not decommit the memory and does not
      // contribute to reduce the memory footprint. On the other hand, these
      // calls become expensive the more memory is allocated in the system and
      // can result in hangs. Thus, it is better to not discard on Windows.
      return false;
      #else
      return CheckMemoryIsInaccessibleIsNoop();
      #endif
      }
      ```
      Line 46, Patchset 11 (Latest): free_memory_handling == FreeMemoryHandling::kReleaseMemory;
      weicong yu . unresolved
      ```
      static constexpr bool CanDiscardMemory() {
      #if defined(V8_OS_WIN)
      // Discarding memory on Windows does not decommit the memory and does not
      // contribute to reduce the memory footprint. On the other hand, these
      // calls become expensive the more memory is allocated in the system and
      // can result in hangs. Thus, it is better to not discard on Windows.
      return false;
      #else
      return CheckMemoryIsInaccessibleIsNoop();
      #endif
      }
      ```

      On Windows, CanDiscardMemory will always return false, so ShouldDiscardMemory will also always return false. Does this mean that it is still impossible to discard memory on Windows? @fdo...@chromium.org @mlip...@chromium.org

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Francois Pierre Doray
      Submit Requirements:
      • 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: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: I82430f1eaa7a57d71ec4bc218f666f9535aeeb94
      Gerrit-Change-Number: 7187747
      Gerrit-PatchSet: 11
      Gerrit-Owner: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Anton Bikineev <biki...@chromium.org>
      Gerrit-Reviewer: Etienne Pierre-Doray <etie...@chromium.org>
      Gerrit-Reviewer: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
      Gerrit-CC: Hannes Payer <hpa...@chromium.org>
      Gerrit-CC: weicong yu <yuweic...@gmail.com>
      Gerrit-Attention: Francois Pierre Doray <fdo...@chromium.org>
      Gerrit-Comment-Date: Wed, 03 Dec 2025 03:22:39 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      open
      diffy

      Michael Lippautz (Gerrit)

      unread,
      Dec 3, 2025, 11:36:55 AM (5 days ago) Dec 3
      to V8 LUCI CQ, Francois Pierre Doray, weicong yu, Anton Bikineev, Etienne Pierre-Doray, chrom...@appspot.gserviceaccount.com, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Francois Pierre Doray

      Michael Lippautz added 1 comment

      File src/heap/cppgc/sweeper.cc
      Line 46, Patchset 11 (Latest): free_memory_handling == FreeMemoryHandling::kReleaseMemory;
      weicong yu . unresolved
      ```
      static constexpr bool CanDiscardMemory() {
      #if defined(V8_OS_WIN)
      // Discarding memory on Windows does not decommit the memory and does not
      // contribute to reduce the memory footprint. On the other hand, these
      // calls become expensive the more memory is allocated in the system and
      // can result in hangs. Thus, it is better to not discard on Windows.
      return false;
      #else
      return CheckMemoryIsInaccessibleIsNoop();
      #endif
      }
      ```

      On Windows, CanDiscardMemory will always return false, so ShouldDiscardMemory will also always return false. Does this mean that it is still impossible to discard memory on Windows? @fdo...@chromium.org @mlip...@chromium.org

      Michael Lippautz

      There's a performance/memory tradeoff for discarding memory on Windows where discarding causes lots of problems that can even lead to hangs. So, yes, it's disabled there. The feature here is discard sub-V8-page memory, so we are talking about smaller avings.

      We do however return memory to the pool and with this CL now properly release memory again.

      Gerrit-Comment-Date: Wed, 03 Dec 2025 16:36:51 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: weicong yu <yuweic...@gmail.com>
      satisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages