cppgc: Add PageBackend::SetPoolNormalPages() to control page pooling [v8/v8 : main]

0 views
Skip to first unread message

José Dapena Paz (Gerrit)

unread,
Feb 18, 2026, 6:46:30 AM (6 days ago) Feb 18
to Hannes Payer, v8-flag...@chromium.org, v8-re...@googlegroups.com, oilpan-r...@chromium.org, mlippau...@chromium.org

José Dapena Paz has uploaded the change for review

Commit message

cppgc: Add PageBackend::SetPoolNormalPages() to control page pooling

Add the new V8 runtime flag pool_normal_pages, that is set by default
to true (to keep current behavior). But when set to false it allows
to disable the normal-page pool.

The main motivation is allowing to reduce the virtual address space
allocation. Though the pool will usually release the memory of the
pages (releasing them), the address space is never freed. This is
problematic for 32-bits where the address space is more limited. With
this change, embedders can completely disable the page pool.

A secondary motivation is allowing to later implement a policy that
reduces the address space allocation in certain scenarios (i.e. when
we are close to the limit of address space allocation, we can
temporarily disable the page pool).

Internally, introduce the setter method
cppgc::internal::PageBackend::SetPoolNormalPages(bool) that is used
by the runtime flag, but can be also used internally. When pooling is
off, FreeNormalPageMemory() returns pages directly to the OS instead
of keeping them in reserve.

When switching pooling off after the pool has pages already, it also
immediately drains those pages.

SetPoolNormalPages() is guarded by mutex_ so it is safe to call
concurrently with allocation. DrainPooledPages(), which runs under the
same lock, uses NormalPageMemoryPool::DrainAll() to atomically swap the
pool out via std::exchange, avoiding re-entrant locking while iterating.
A private EraseNormalPageMemoryRegion() helper deduplicates the erase
code and checks in both FreeNormalPageMemory() and DrainPooledPages().

Tests added accordingly.
Bug: 483542963
Change-Id: I06731fa2412a41f535f3047937159ef4deaaab47

Change diff


Change information

Files:
  • M src/flags/flag-definitions.h
  • M src/heap/cppgc-js/cpp-heap.cc
  • M src/heap/cppgc/page-memory.cc
  • M src/heap/cppgc/page-memory.h
  • M test/unittests/heap/cppgc/page-memory-unittest.cc
Change size: M
Delta: 5 files changed, 105 insertions(+), 1 deletion(-)
Open in Gerrit

Related details

Attention set is empty
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: newchange
Gerrit-Project: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: I06731fa2412a41f535f3047937159ef4deaaab47
Gerrit-Change-Number: 7588154
Gerrit-PatchSet: 1
Gerrit-Owner: José Dapena Paz <jda...@igalia.com>
Gerrit-CC: Hannes Payer <hpa...@chromium.org>
unsatisfied_requirement
open
diffy

José Dapena Paz (Gerrit)

unread,
Feb 18, 2026, 7:45:25 AM (6 days ago) Feb 18
to Michael Lippautz, Marja Hölttä, Yang Guo, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
Attention needed from Marja Hölttä, Michael Lippautz and Yang Guo

José Dapena Paz voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Marja Hölttä
  • Michael Lippautz
  • Yang Guo
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: I06731fa2412a41f535f3047937159ef4deaaab47
Gerrit-Change-Number: 7588154
Gerrit-PatchSet: 1
Gerrit-Owner: José Dapena Paz <jda...@igalia.com>
Gerrit-Reviewer: José Dapena Paz <jda...@igalia.com>
Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
Gerrit-Reviewer: Yang Guo <yan...@chromium.org>
Gerrit-CC: Hannes Payer <hpa...@chromium.org>
Gerrit-Attention: Yang Guo <yan...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Marja Hölttä <ma...@chromium.org>
Gerrit-Comment-Date: Wed, 18 Feb 2026 12:45:19 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
unsatisfied_requirement
open
diffy

Michael Lippautz (Gerrit)

unread,
Feb 18, 2026, 8:01:48 AM (6 days ago) Feb 18
to José Dapena Paz, Marja Hölttä, Yang Guo, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
Attention needed from José Dapena Paz, Marja Hölttä and Yang Guo

Michael Lippautz added 1 comment

File src/heap/cppgc/page-memory.h
Line 198, Patchset 1 (Latest): bool pool_normal_pages_ = true;
Michael Lippautz . unresolved

This basically disables the pool. What's the difference to saying --no-memory-pool here which just avoids the pool at all?

Open in Gerrit

Related details

Attention is currently required from:
  • José Dapena Paz
  • Marja Hölttä
  • Yang Guo
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: I06731fa2412a41f535f3047937159ef4deaaab47
    Gerrit-Change-Number: 7588154
    Gerrit-PatchSet: 1
    Gerrit-Owner: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Yang Guo <yan...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: José Dapena Paz <jda...@igalia.com>
    Gerrit-Attention: Yang Guo <yan...@chromium.org>
    Gerrit-Attention: Marja Hölttä <ma...@chromium.org>
    Gerrit-Comment-Date: Wed, 18 Feb 2026 13:01:43 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    José Dapena Paz (Gerrit)

    unread,
    Feb 18, 2026, 8:05:53 AM (6 days ago) Feb 18
    to Michael Lippautz, Marja Hölttä, Yang Guo, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Marja Hölttä, Michael Lippautz and Yang Guo

    José Dapena Paz added 1 comment

    File src/heap/cppgc/page-memory.h
    Line 198, Patchset 1 (Latest): bool pool_normal_pages_ = true;
    Michael Lippautz . unresolved

    This basically disables the pool. What's the difference to saying --no-memory-pool here which just avoids the pool at all?

    José Dapena Paz

    This is for the CPPGC pages pool. I think --no-memory-pool has no effect on CPPGC page pool?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Marja Hölttä
    • Michael Lippautz
    • Yang Guo
    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: I06731fa2412a41f535f3047937159ef4deaaab47
    Gerrit-Change-Number: 7588154
    Gerrit-PatchSet: 1
    Gerrit-Owner: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Marja Hölttä <ma...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Yang Guo <yan...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: Yang Guo <yan...@chromium.org>
    Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: Marja Hölttä <ma...@chromium.org>
    Gerrit-Comment-Date: Wed, 18 Feb 2026 13:05:48 +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,
    Feb 18, 2026, 8:24:09 AM (6 days ago) Feb 18
    to José Dapena Paz, Anton Bikineev, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Anton Bikineev and José Dapena Paz

    Michael Lippautz added 2 comments

    File src/flags/flag-definitions.h
    Line 1065, Patchset 1 (Latest):DEFINE_BOOL(pool_normal_pages, true,
    Michael Lippautz . unresolved

    Since this is really CppHeap related: Let's name this `cppheap_page_pool` and move it to a `cppheap_*` block.

    File src/heap/cppgc/page-memory.cc
    Line 282, Patchset 1 (Latest): DrainPooledPages();
    Michael Lippautz . unresolved

    Can you inline `DrainPooledPages()` (and its `DrainAll()`) in here? There's not much reuse that we get here.

    In fact, shouldn't this just be `ReleasedPooledPages()`? Also, is `ReleasedPooledPages()` buggy and missing the deletion from `normal_page_memory_regions_`?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Anton Bikineev
    • José Dapena Paz
    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: I06731fa2412a41f535f3047937159ef4deaaab47
    Gerrit-Change-Number: 7588154
    Gerrit-PatchSet: 1
    Gerrit-Owner: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Anton Bikineev <biki...@chromium.org>
    Gerrit-Reviewer: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: José Dapena Paz <jda...@igalia.com>
    Gerrit-Attention: Anton Bikineev <biki...@chromium.org>
    Gerrit-Comment-Date: Wed, 18 Feb 2026 13:24:03 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    José Dapena Paz (Gerrit)

    unread,
    Feb 19, 2026, 7:33:39 AM (5 days ago) Feb 19
    to Anton Bikineev, Michael Lippautz, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Anton Bikineev and Michael Lippautz

    José Dapena Paz added 2 comments

    File src/flags/flag-definitions.h
    Line 1065, Patchset 1:DEFINE_BOOL(pool_normal_pages, true,
    Michael Lippautz . resolved

    Since this is really CppHeap related: Let's name this `cppheap_page_pool` and move it to a `cppheap_*` block.

    José Dapena Paz

    Done.

    File src/heap/cppgc/page-memory.cc
    Line 282, Patchset 1: DrainPooledPages();
    Michael Lippautz . unresolved

    Can you inline `DrainPooledPages()` (and its `DrainAll()`) in here? There's not much reuse that we get here.

    In fact, shouldn't this just be `ReleasedPooledPages()`? Also, is `ReleasedPooledPages()` buggy and missing the deletion from `normal_page_memory_regions_`?

    José Dapena Paz

    Release pooled pages is for releasing the backing memory of a page (but the page will still be "booking" address space to be reused). Keeping addresses around is intentional and usually safer (CPPGC heap addresses will only be used for CPPGC).

    That's the reason why my patch proposes to have a runtime flag for disabling that. With it we will not use the page pool at all (so new pages will need to be allocated completely). This should only be enabled by embedders, and likely only in 32 bits platforms, where this is actually a problem with keeping virtual address space ranges.

    In the future, I plan to have also calls to drain pooled pages in a way that can be used externally. Some ideas:

    • When there is address space pressure. This could be enabled by default in 32 bits platforms, so when we pass a threshold we remove the pooled pages.
    • Or maybe after a timeout, so we have the pool available in situations with many memory allocations, but they are freed after that situation finishes.

    So that's the reason I have an explicit method for that, I expect later to use it externally. And maybe I could enable by default one of these policies. This current patch is for fully opting out of the CPPGC page pool.

    The reason there is DrainAll is avoiding requiring access to the internals in NormalPageMemoryPool from PageBackend. Implementation just delegates to the NormalPageMemoryPool to drain the PMR, and then iterates over them to remove them from the normal page memory regions map (that is the one that will cause the effective deletion of the PMR objects).

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Anton Bikineev
    • 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: I06731fa2412a41f535f3047937159ef4deaaab47
    Gerrit-Change-Number: 7588154
    Gerrit-PatchSet: 1
    Gerrit-Owner: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Anton Bikineev <biki...@chromium.org>
    Gerrit-Reviewer: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: Anton Bikineev <biki...@chromium.org>
    Gerrit-Comment-Date: Thu, 19 Feb 2026 12:33:32 +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,
    Feb 20, 2026, 5:52:10 AM (4 days ago) Feb 20
    to José Dapena Paz, Anton Bikineev, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Anton Bikineev and José Dapena Paz

    Michael Lippautz added 1 comment

    File src/heap/cppgc/page-memory.cc
    Line 282, Patchset 1: DrainPooledPages();
    Michael Lippautz . unresolved

    Can you inline `DrainPooledPages()` (and its `DrainAll()`) in here? There's not much reuse that we get here.

    In fact, shouldn't this just be `ReleasedPooledPages()`? Also, is `ReleasedPooledPages()` buggy and missing the deletion from `normal_page_memory_regions_`?

    José Dapena Paz

    Release pooled pages is for releasing the backing memory of a page (but the page will still be "booking" address space to be reused). Keeping addresses around is intentional and usually safer (CPPGC heap addresses will only be used for CPPGC).

    That's the reason why my patch proposes to have a runtime flag for disabling that. With it we will not use the page pool at all (so new pages will need to be allocated completely). This should only be enabled by embedders, and likely only in 32 bits platforms, where this is actually a problem with keeping virtual address space ranges.

    In the future, I plan to have also calls to drain pooled pages in a way that can be used externally. Some ideas:

    • When there is address space pressure. This could be enabled by default in 32 bits platforms, so when we pass a threshold we remove the pooled pages.
    • Or maybe after a timeout, so we have the pool available in situations with many memory allocations, but they are freed after that situation finishes.

    So that's the reason I have an explicit method for that, I expect later to use it externally. And maybe I could enable by default one of these policies. This current patch is for fully opting out of the CPPGC page pool.

    The reason there is DrainAll is avoiding requiring access to the internals in NormalPageMemoryPool from PageBackend. Implementation just delegates to the NormalPageMemoryPool to drain the PMR, and then iterates over them to remove them from the normal page memory regions map (that is the one that will cause the effective deletion of the PMR objects).

    Michael Lippautz

    Release pooled pages is for releasing the backing memory of a page (but the page will still be "booking" address space to be reused). Keeping addresses around is intentional and usually safer (CPPGC heap addresses will only be used for CPPGC).

    This is what is implemented but I do think that's a bug. We do release pooled pages under memory pressure which should free up not just the backing memory but also the reservation on this layer. For 32-bit bit this should make pages go back to the OS. For 64-bit this should mean reservations go back to the cage (next layer).

    The reservation is otherwise just leaked as it's not found for allocations anymore, leading to OOMs due to virtual address space (or cage space on 64-bit) exhaustion.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Anton Bikineev
    • José Dapena Paz
    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: I06731fa2412a41f535f3047937159ef4deaaab47
    Gerrit-Change-Number: 7588154
    Gerrit-PatchSet: 2
    Gerrit-Owner: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Anton Bikineev <biki...@chromium.org>
    Gerrit-Reviewer: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: José Dapena Paz <jda...@igalia.com>
    Gerrit-Attention: Anton Bikineev <biki...@chromium.org>
    Gerrit-Comment-Date: Fri, 20 Feb 2026 10:52:04 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: José Dapena Paz <jda...@igalia.com>
    Comment-In-Reply-To: Michael Lippautz <mlip...@chromium.org>
    unsatisfied_requirement
    open
    diffy

    Anton Bikineev (Gerrit)

    unread,
    Feb 23, 2026, 11:52:51 AM (21 hours ago) Feb 23
    to José Dapena Paz, Michael Lippautz, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from José Dapena Paz

    Anton Bikineev added 2 comments

    Commit Message
    Line 15, Patchset 2 (Latest):pages (releasing them), the address space is never freed. This is
    Anton Bikineev . unresolved

    I guess we don't unmap pages for non-cages configurations, which causes this problem? Would it make sense to just fix it instead?

    Line 15, Patchset 2 (Latest):pages (releasing them), the address space is never freed. This is

    problematic for 32-bits where the address space is more limited. With
    Anton Bikineev . unresolved

    This should only be a problem for 32-bit archs, not on the 64-bit caged configurations, where the memory is reserved in the cage anyway?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • José Dapena Paz
    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: I06731fa2412a41f535f3047937159ef4deaaab47
    Gerrit-Change-Number: 7588154
    Gerrit-PatchSet: 2
    Gerrit-Owner: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Anton Bikineev <biki...@chromium.org>
    Gerrit-Reviewer: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: José Dapena Paz <jda...@igalia.com>
    Gerrit-Comment-Date: Mon, 23 Feb 2026 16:52:47 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    Anton Bikineev (Gerrit)

    unread,
    6:56 AM (2 hours ago) 6:56 AM
    to José Dapena Paz, Michael Lippautz, V8 LUCI CQ, Hannes Payer, mlippau...@chromium.org, oilpan-r...@chromium.org, v8-flag...@chromium.org, v8-re...@googlegroups.com
    Attention needed from José Dapena Paz

    Anton Bikineev added 1 comment

    Commit Message
    Line 15, Patchset 2 (Latest):pages (releasing them), the address space is never freed. This is
    Anton Bikineev . unresolved

    I guess we don't unmap pages for non-cages configurations, which causes this problem? Would it make sense to just fix it instead?

    Anton Bikineev

    There is a CL that releases the pages entirely (i.e. both decommits and returns the pages back to the cage or the OS): https://chromium-review.googlesource.com/c/v8/v8/+/7600444. Note however that on caged configurations the virtual memory will still be accounted.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • José Dapena Paz
    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: I06731fa2412a41f535f3047937159ef4deaaab47
    Gerrit-Change-Number: 7588154
    Gerrit-PatchSet: 2
    Gerrit-Owner: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Anton Bikineev <biki...@chromium.org>
    Gerrit-Reviewer: José Dapena Paz <jda...@igalia.com>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-CC: Hannes Payer <hpa...@chromium.org>
    Gerrit-Attention: José Dapena Paz <jda...@igalia.com>
    Gerrit-Comment-Date: Tue, 24 Feb 2026 11:56:32 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Anton Bikineev <biki...@chromium.org>
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages