Cage for ExternalStrings when memory corruption API [v8/v8 : main]

0 views
Skip to first unread message

Maksim Ivanov (Gerrit)

unread,
Dec 11, 2025, 5:44:58 AM (5 days ago) Dec 11
to Omer Katz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Omer Katz

Maksim Ivanov voted and added 1 comment

Votes added by Maksim Ivanov

Commit-Queue+0

1 comment

Patchset-level comments
File-level comment, Patchset 3 (Latest):
Maksim Ivanov . unresolved

PTAL - this is not finished, but sending this out early in case of any high-level feedback. Thanks!

Open in Gerrit

Related details

Attention is currently required from:
  • Omer Katz
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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 3
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Omer Katz <omer...@chromium.org>
Gerrit-Comment-Date: Thu, 11 Dec 2025 10:44:53 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
unsatisfied_requirement
open
diffy

Omer Katz (Gerrit)

unread,
Dec 11, 2025, 7:06:06 AM (5 days ago) Dec 11
to Maksim Ivanov, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Maksim Ivanov

Omer Katz added 7 comments

Patchset-level comments
Omer Katz . resolved

The direction looks good to me

File src/extensions/externalize-string-extension.cc
Line 38, Patchset 3 (Latest): data_ = new Char[length_];
Omer Katz . unresolved

You need to distinguish one byte strings from two byte strings here.

Line 45, Patchset 3 (Latest): auto* cage = reinterpret_cast<v8::internal::Isolate*>(isolate_)
Omer Katz . unresolved

Instead of storing the isolate, you can just store the cage itself. It shouldn't change during execution.

Alternatively:
If `SimpleStringResource` lives in the sandbox, it can be corrupted as well. In that case, maybe don't store anything and just get the isolate via `Isolate::Current()`? I believe this should always happen on the main thread with the current isolate properly set up, so it's probably the safer option.

File src/sandbox/external-strings-cage.cc
Line 26, Patchset 3 (Latest):void ExternalStringsCage::Initialize() {
Omer Katz . unresolved

I think this initialization is not sufficient as it not guarantees that the allocator doesn't allocate at the end of the cage. I think that after reserving the memory you need to allocate (or "allocate") the buffer part of it so that nothing else can be allocated there.

Line 29, Patchset 3 (Latest): .reservation_size = kMaxContentsSize + kBufferSize,
Omer Katz . unresolved

Shouldn't it suffice to just allocate `kBufferSize`? I assumed you'd use the first half for allocations and the second half for the buffer.

Line 64, Patchset 3 (Latest): size_t page_count = (buf_size + page_size_ - 1) / page_size_;
Omer Katz . unresolved

Why do you need to allocate whole pages?

File src/sandbox/testing.cc
Line 695, Patchset 3 (Latest): i_isolate->isolate_group()->external_strings_cage()->reservation_region();
Omer Katz . unresolved

What would this return if we didn't initialize the cage? Or are we always guaranteed to have it initialized when we use it here?

Open in Gerrit

Related details

Attention is currently required from:
  • Maksim Ivanov
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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 3
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Maksim Ivanov <em...@chromium.org>
Gerrit-Comment-Date: Thu, 11 Dec 2025 12:06:01 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
unsatisfied_requirement
open
diffy

Maksim Ivanov (Gerrit)

unread,
Dec 11, 2025, 6:53:57 PM (5 days ago) Dec 11
to Omer Katz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Omer Katz

Maksim Ivanov voted and added 6 comments

Votes added by Maksim Ivanov

Commit-Queue+1

6 comments

File src/extensions/externalize-string-extension.cc
Line 38, Patchset 3: data_ = new Char[length_];
Omer Katz . resolved

You need to distinguish one byte strings from two byte strings here.

Maksim Ivanov

|Char| is already a template parameter, so the array allocation is OK here I think? But I've renamed it to "CharT" to make it more apparent.

Line 45, Patchset 3: auto* cage = reinterpret_cast<v8::internal::Isolate*>(isolate_)
Omer Katz . resolved

Instead of storing the isolate, you can just store the cage itself. It shouldn't change during execution.

Alternatively:
If `SimpleStringResource` lives in the sandbox, it can be corrupted as well. In that case, maybe don't store anything and just get the isolate via `Isolate::Current()`? I believe this should always happen on the main thread with the current isolate properly set up, so it's probably the safer option.

Maksim Ivanov

Simplified using IsolateGroup::current(), thanks.

File src/sandbox/external-strings-cage.cc
Line 26, Patchset 3:void ExternalStringsCage::Initialize() {
Omer Katz . resolved

I think this initialization is not sufficient as it not guarantees that the allocator doesn't allocate at the end of the cage. I think that after reserving the memory you need to allocate (or "allocate") the buffer part of it so that nothing else can be allocated there.

Maksim Ivanov

Done, totally forgot about this.

Line 29, Patchset 3: .reservation_size = kMaxContentsSize + kBufferSize,
Omer Katz . resolved

Shouldn't it suffice to just allocate `kBufferSize`? I assumed you'd use the first half for allocations and the second half for the buffer.

Maksim Ivanov

Renamed the second constant to kGuardRegionSize to clarify the expression here. I.e., it's 4 GB for strings themselves, and 8 GB for the guard region (covering the maximum possible 32-bit shift in a UTF-16 string). Hopefully that makes sense.

Line 64, Patchset 3: size_t page_count = (buf_size + page_size_ - 1) / page_size_;
Omer Katz . unresolved

Why do you need to allocate whole pages?

Maksim Ivanov

Added a comment explaining it - potentially we could've used PartitionAlloc, but it's not possible at the moment. So there's an obvious memory overhead here, but it's probably not too terrible if we only talk about using this in fuzzers (IIUC the page size is around 4KB).

As written in the doc, we could potentially lift this restriction by switching to PartitionAlloc here, but even if we do I'd propose to do it in a separate page. Also with PA it won't be easy to enforce "external string contents are sealed" in fuzzers, which might be a useful property to check.

File src/sandbox/testing.cc
Line 695, Patchset 3: i_isolate->isolate_group()->external_strings_cage()->reservation_region();
Omer Katz . resolved

What would this return if we didn't initialize the cage? Or are we always guaranteed to have it initialized when we use it here?

Maksim Ivanov

Added a check that'd prevent using reservation_region() before the initialization.

Open in Gerrit

Related details

Attention is currently required from:
  • Omer Katz
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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 9
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Omer Katz <omer...@chromium.org>
Gerrit-Comment-Date: Thu, 11 Dec 2025 23:53:52 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: Omer Katz <omer...@chromium.org>
unsatisfied_requirement
open
diffy

Omer Katz (Gerrit)

unread,
Dec 12, 2025, 9:25:13 AM (4 days ago) Dec 12
to Maksim Ivanov, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Maksim Ivanov

Omer Katz added 7 comments

File src/extensions/externalize-string-extension.cc
Line 48, Patchset 11:#endif
Omer Katz . unresolved

nit: `#endif // V8_ENABLE_MEMORY_CORRUPTION_API`

Line 154, Patchset 11: String::WriteToFlat(*string, reinterpret_cast<uint8_t*>(resource->data()),
Omer Katz . unresolved

Since you're using whole pages for the strings, can you mark them as read only after copying the string?
We could introduce a method like `SimpleStringResource::Seal()` that does that.

File src/init/isolate-group.h
Line 438, Patchset 11:#endif
Omer Katz . unresolved

nit: `#endif // V8_ENABLE_MEMORY_CORRUPTION_API`

File src/sandbox/external-strings-cage.h
Line 26, Patchset 11:// a redzone and occupy whole pages for a string at the moment.
Omer Katz . unresolved

Why do we use a redzone? Is it for catching small OOB reads?
An "attacker" can just "jump" over the redzone to read from the next external string, so I'm not sure what we get from having a redzone. Is a fuzzer more likely to try a small OOB read?

Is it just because you needed padding the remainder of the page? If that's the case then I don't think we should `kRedzoneMinSize` in `ExternalStringsCage::GetAllocSize` because if a string is a whole page then there's no reason to waste another page just a redzone imo.

File src/sandbox/external-strings-cage.cc
Line 29, Patchset 3: .reservation_size = kMaxContentsSize + kBufferSize,
Omer Katz . resolved

Shouldn't it suffice to just allocate `kBufferSize`? I assumed you'd use the first half for allocations and the second half for the buffer.

Maksim Ivanov

Renamed the second constant to kGuardRegionSize to clarify the expression here. I.e., it's 4 GB for strings themselves, and 8 GB for the guard region (covering the maximum possible 32-bit shift in a UTF-16 string). Hopefully that makes sense.

Omer Katz

Thanks for clarifying. I didn't consider the two-byte-string case.

Line 64, Patchset 3: size_t page_count = (buf_size + page_size_ - 1) / page_size_;
Omer Katz . resolved

Why do you need to allocate whole pages?

Maksim Ivanov

Added a comment explaining it - potentially we could've used PartitionAlloc, but it's not possible at the moment. So there's an obvious memory overhead here, but it's probably not too terrible if we only talk about using this in fuzzers (IIUC the page size is around 4KB).

As written in the doc, we could potentially lift this restriction by switching to PartitionAlloc here, but even if we do I'd propose to do it in a separate page. Also with PA it won't be easy to enforce "external string contents are sealed" in fuzzers, which might be a useful property to check.

Omer Katz

Acknowledged

Line 82, Patchset 11: // Allocate whole pages as we're relying on BoundedPageAllocator (e.g.,
Omer Katz . unresolved

I was wondering why we need to use a BoundedPageAllocator here and not one of our smaller granularity allocators, but I suppose they are too specialized for our regular allocations to work here, right?

Open in Gerrit

Related details

Attention is currently required from:
  • Maksim Ivanov
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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 12
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Maksim Ivanov <em...@chromium.org>
Gerrit-Comment-Date: Fri, 12 Dec 2025 14:25:08 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Omer Katz <omer...@chromium.org>
Comment-In-Reply-To: Maksim Ivanov <em...@chromium.org>
unsatisfied_requirement
open
diffy

Maksim Ivanov (Gerrit)

unread,
Dec 15, 2025, 6:12:50 AM (yesterday) Dec 15
to Michael Lippautz, Omer Katz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Omer Katz

Maksim Ivanov added 5 comments

File src/extensions/externalize-string-extension.cc
Omer Katz . resolved

nit: `#endif // V8_ENABLE_MEMORY_CORRUPTION_API`

Maksim Ivanov

Done

Line 154, Patchset 11: String::WriteToFlat(*string, reinterpret_cast<uint8_t*>(resource->data()),
Omer Katz . unresolved

Since you're using whole pages for the strings, can you mark them as read only after copying the string?
We could introduce a method like `SimpleStringResource::Seal()` that does that.

Maksim Ivanov

Exactly, but I'd propose doing this in a follow-up, to separate the current change (whose purpose is to filter out some reports) from this hardening (which would add a new case when reports are generated).

File src/init/isolate-group.h
Omer Katz . resolved

nit: `#endif // V8_ENABLE_MEMORY_CORRUPTION_API`

Maksim Ivanov

Done

File src/sandbox/external-strings-cage.h
Line 26, Patchset 11:// a redzone and occupy whole pages for a string at the moment.
Omer Katz . resolved

Why do we use a redzone? Is it for catching small OOB reads?
An "attacker" can just "jump" over the redzone to read from the next external string, so I'm not sure what we get from having a redzone. Is a fuzzer more likely to try a small OOB read?

Is it just because you needed padding the remainder of the page? If that's the case then I don't think we should `kRedzoneMinSize` in `ExternalStringsCage::GetAllocSize` because if a string is a whole page then there's no reason to waste another page just a redzone imo.

Maksim Ivanov

OK, removed kRedzoneMinSize for now. My thinking was to mimic the regular ASan behavior which would catch a simple one-byte OOB read via a redzone. Another consideration was that as I round up allocations to page size, without this extra redzone the strings with particular lengths (multiples of the page size) would be treated differently in the fuzzer.

File src/sandbox/external-strings-cage.cc
Line 82, Patchset 11: // Allocate whole pages as we're relying on BoundedPageAllocator (e.g.,
Omer Katz . unresolved

I was wondering why we need to use a BoundedPageAllocator here and not one of our smaller granularity allocators, but I suppose they are too specialized for our regular allocations to work here, right?

Maksim Ivanov

If we agree on sealing (which seems useful), IIUC this requires us to have one-string-per-page, for which a PageAllocator is sufficient. Otherwise, PA sounded like the right tool, even though we could look at alternatives (e.g., one of ideas was ZoneAllocator).

Open in Gerrit

Related details

Attention is currently required from:
  • Omer Katz
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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 13
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Omer Katz <omer...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 11:12:44 +0000
unsatisfied_requirement
open
diffy

Maksim Ivanov (Gerrit)

unread,
Dec 15, 2025, 6:13:29 AM (yesterday) Dec 15
to Leszek Swirski, Michael Lippautz, Omer Katz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Leszek Swirski, Michael Lippautz and Omer Katz

Maksim Ivanov added 1 comment

Patchset-level comments
File-level comment, Patchset 14 (Latest):
Maksim Ivanov . resolved

Adding more OWNERS as well - PTAL; thanks!

Open in Gerrit

Related details

Attention is currently required from:
  • Leszek Swirski
  • Michael Lippautz
  • Omer Katz
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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 14
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Leszek Swirski <les...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 11:13:24 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
unsatisfied_requirement
open
diffy

Michael Lippautz (Gerrit)

unread,
Dec 15, 2025, 6:22:17 AM (yesterday) Dec 15
to Maksim Ivanov, Leszek Swirski, Omer Katz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Leszek Swirski, Maksim Ivanov and Omer Katz

Michael Lippautz added 3 comments

Patchset-level comments
Michael Lippautz . resolved

I think this already is in good shape

File src/d8/d8.cc
Line 539, Patchset 14 (Latest): data_ = static_cast<char*>(v8::internal::IsolateGroup::current()
->external_strings_cage()
->Allocate(length_));
Michael Lippautz . unresolved

Can we hide this allocate/free pair behind some RAII struct that is owned by the resource?

Alternatively, let's store at least a span internally. I am aware that there's separate void*/size_t getters which makes this moot but at least we leave the internals in okay shape.

File src/extensions/externalize-string-extension.cc
Line 30, Patchset 14 (Latest):#ifdef V8_ENABLE_MEMORY_CORRUPTION_API
Michael Lippautz . unresolved

Now that I see this here as well: I think it would indeed be better if we could encapsulate the alloc/free a bit more and offer something simple for the callsites.

Open in Gerrit

Related details

Attention is currently required from:
  • Leszek Swirski
  • Maksim Ivanov
  • Omer Katz
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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 14
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Maksim Ivanov <em...@chromium.org>
Gerrit-Attention: Leszek Swirski <les...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 11:22:12 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
unsatisfied_requirement
open
diffy

Leszek Swirski (Gerrit)

unread,
Dec 15, 2025, 6:22:27 AM (yesterday) Dec 15
to Maksim Ivanov, Michael Lippautz, Omer Katz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Maksim Ivanov and Omer Katz

Leszek Swirski voted and added 3 comments

Votes added by Leszek Swirski

Code-Review+1

3 comments

Patchset-level comments
Leszek Swirski . resolved

seems reasonable to me

Commit Message
Line 9, Patchset 14 (Latest):When fuzzing with memory_corruption_api enabled, move all external string resources into a separate cage with a large reserved guard
Leszek Swirski . unresolved

nit: commit message line wrapping

File src/sandbox/testing.cc
Line 696, Patchset 14 (Latest): fprintf(stderr, "External strings cage bounds: [%p,%p)\n",
Leszek Swirski . unresolved

left over? you shouldn't print this unconditionally.

Open in Gerrit

Related details

Attention is currently required from:
  • Maksim Ivanov
  • Omer Katz
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not 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: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 14
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Maksim Ivanov <em...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 11:22:20 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Omer Katz (Gerrit)

unread,
Dec 15, 2025, 6:31:03 AM (yesterday) Dec 15
to Maksim Ivanov, Leszek Swirski, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Maksim Ivanov

Omer Katz added 2 comments

File src/extensions/externalize-string-extension.cc
Line 154, Patchset 11: String::WriteToFlat(*string, reinterpret_cast<uint8_t*>(resource->data()),
Omer Katz . resolved

Since you're using whole pages for the strings, can you mark them as read only after copying the string?
We could introduce a method like `SimpleStringResource::Seal()` that does that.

Maksim Ivanov

Exactly, but I'd propose doing this in a follow-up, to separate the current change (whose purpose is to filter out some reports) from this hardening (which would add a new case when reports are generated).

Omer Katz

Acknowledged

File src/sandbox/external-strings-cage.cc
Line 82, Patchset 11: // Allocate whole pages as we're relying on BoundedPageAllocator (e.g.,
Omer Katz . unresolved

I was wondering why we need to use a BoundedPageAllocator here and not one of our smaller granularity allocators, but I suppose they are too specialized for our regular allocations to work here, right?

Maksim Ivanov

If we agree on sealing (which seems useful), IIUC this requires us to have one-string-per-page, for which a PageAllocator is sufficient. Otherwise, PA sounded like the right tool, even though we could look at alternatives (e.g., one of ideas was ZoneAllocator).

Omer Katz

I agree. If we go forward with sealing, there's likely no need for PA anymore.

Open in Gerrit

Related details

Attention is currently required from:
  • Maksim Ivanov
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not 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: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 14
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Maksim Ivanov <em...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 11:30:57 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Omer Katz (Gerrit)

unread,
Dec 15, 2025, 6:31:09 AM (yesterday) Dec 15
to Maksim Ivanov, Leszek Swirski, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Maksim Ivanov

Omer Katz voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Maksim Ivanov
Submit Requirements:
  • 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: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 14
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Maksim Ivanov <em...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 11:31:04 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Maksim Ivanov (Gerrit)

unread,
Dec 15, 2025, 7:45:17 AM (yesterday) Dec 15
to Omer Katz, Leszek Swirski, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Leszek Swirski, Michael Lippautz and Omer Katz

Maksim Ivanov added 5 comments

Commit Message
Line 9, Patchset 14:When fuzzing with memory_corruption_api enabled, move all external string resources into a separate cage with a large reserved guard
Leszek Swirski . resolved

nit: commit message line wrapping

Maksim Ivanov

Done

File src/d8/d8.cc
Line 539, Patchset 14: data_ = static_cast<char*>(v8::internal::IsolateGroup::current()
->external_strings_cage()
->Allocate(length_));
Michael Lippautz . unresolved

Can we hide this allocate/free pair behind some RAII struct that is owned by the resource?

Alternatively, let's store at least a span internally. I am aware that there's separate void*/size_t getters which makes this moot but at least we leave the internals in okay shape.

Maksim Ivanov

Makes sense. Added a custom allocator class.

I'm trying to use it with std::vector<T> - seems like it's the simplest way to integrate the custom allocator. However I'll need to check performance benchmarks; if it's visible then std::unique_ptr wiht a custom deleter would be an alternative.

File src/extensions/externalize-string-extension.cc
Line 30, Patchset 14:#ifdef V8_ENABLE_MEMORY_CORRUPTION_API
Michael Lippautz . resolved

Now that I see this here as well: I think it would indeed be better if we could encapsulate the alloc/free a bit more and offer something simple for the callsites.

Maksim Ivanov

OK, replied above.

File src/sandbox/external-strings-cage.cc
Line 82, Patchset 11: // Allocate whole pages as we're relying on BoundedPageAllocator (e.g.,
Omer Katz . resolved

I was wondering why we need to use a BoundedPageAllocator here and not one of our smaller granularity allocators, but I suppose they are too specialized for our regular allocations to work here, right?

Maksim Ivanov

If we agree on sealing (which seems useful), IIUC this requires us to have one-string-per-page, for which a PageAllocator is sufficient. Otherwise, PA sounded like the right tool, even though we could look at alternatives (e.g., one of ideas was ZoneAllocator).

Omer Katz

I agree. If we go forward with sealing, there's likely no need for PA anymore.

Maksim Ivanov

ok! resolving

File src/sandbox/testing.cc
Line 696, Patchset 14: fprintf(stderr, "External strings cage bounds: [%p,%p)\n",
Leszek Swirski . unresolved

left over? you shouldn't print this unconditionally.

Maksim Ivanov

The code already prints the sandbox boundaries: https://source.chromium.org/chromium/chromium/src/+/main:v8/src/sandbox/testing.cc;l=968;drc=325c5b532c768c5d5b9c462d48102fdc071134a6 . I thought same might be useful for the new cage, so that we can debug it easier if something goes wrong with the cage. I can remove it if the benefits don't outweigh the bit of extra spam.

Open in Gerrit

Related details

Attention is currently required from:
  • Leszek Swirski
  • Michael Lippautz
  • Omer Katz
Submit Requirements:
  • requirement 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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 16
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Leszek Swirski <les...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 12:45:11 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Omer Katz <omer...@chromium.org>
Comment-In-Reply-To: Maksim Ivanov <em...@chromium.org>
Comment-In-Reply-To: Michael Lippautz <mlip...@chromium.org>
Comment-In-Reply-To: Leszek Swirski <les...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Leszek Swirski (Gerrit)

unread,
Dec 15, 2025, 7:48:47 AM (yesterday) Dec 15
to Maksim Ivanov, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Maksim Ivanov, Michael Lippautz and Omer Katz

Leszek Swirski added 1 comment

File src/sandbox/testing.cc
Line 696, Patchset 14: fprintf(stderr, "External strings cage bounds: [%p,%p)\n",
Leszek Swirski . unresolved

left over? you shouldn't print this unconditionally.

Maksim Ivanov

The code already prints the sandbox boundaries: https://source.chromium.org/chromium/chromium/src/+/main:v8/src/sandbox/testing.cc;l=968;drc=325c5b532c768c5d5b9c462d48102fdc071134a6 . I thought same might be useful for the new cage, so that we can debug it easier if something goes wrong with the cage. I can remove it if the benefits don't outweigh the bit of extra spam.

Leszek Swirski

Oh then it's fine

Open in Gerrit

Related details

Attention is currently required from:
  • Maksim Ivanov
  • Michael Lippautz
  • Omer Katz
Submit Requirements:
  • requirement 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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
Gerrit-Change-Number: 7171994
Gerrit-PatchSet: 16
Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Omer Katz <omer...@chromium.org>
Gerrit-Attention: Maksim Ivanov <em...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Comment-Date: Mon, 15 Dec 2025 12:48:41 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Maksim Ivanov <em...@chromium.org>
Comment-In-Reply-To: Leszek Swirski <les...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Leszek Swirski (Gerrit)

unread,
Dec 15, 2025, 7:48:52 AM (yesterday) Dec 15
to Maksim Ivanov, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
Attention needed from Maksim Ivanov, Michael Lippautz and Omer Katz

Leszek Swirski voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Maksim Ivanov
  • Michael Lippautz
  • Omer Katz
Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement is not 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: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
    Gerrit-Change-Number: 7171994
    Gerrit-PatchSet: 16
    Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
    Gerrit-Attention: Omer Katz <omer...@chromium.org>
    Gerrit-Attention: Maksim Ivanov <em...@chromium.org>
    Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Comment-Date: Mon, 15 Dec 2025 12:48:47 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    chromeperf@appspot.gserviceaccount.com (Gerrit)

    unread,
    Dec 15, 2025, 8:36:50 AM (yesterday) Dec 15
    to Maksim Ivanov, Leszek Swirski, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Maksim Ivanov and Michael Lippautz

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

    📍 Job win-11-perf/speedometer3 complete.

    See results at: https://pinpoint-dot-chromeperf.appspot.com/job/15ac4838b10000

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Maksim Ivanov
    • Michael Lippautz
    Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement is not 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: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
    Gerrit-Change-Number: 7171994
    Gerrit-PatchSet: 16
    Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
    Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
    Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
    Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
    Gerrit-Attention: Maksim Ivanov <em...@chromium.org>
    Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Comment-Date: Mon, 15 Dec 2025 13:36:46 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    chromeperf@appspot.gserviceaccount.com (Gerrit)

    unread,
    Dec 15, 2025, 8:39:39 AM (yesterday) Dec 15
    to Maksim Ivanov, Leszek Swirski, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Maksim Ivanov and Michael Lippautz

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

    📍 Job mac-m1_mini_2020-perf/speedometer3 complete.

    See results at: https://pinpoint-dot-chromeperf.appspot.com/job/159f8e0b310000

    Gerrit-Comment-Date: Mon, 15 Dec 2025 13:39:35 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    chromeperf@appspot.gserviceaccount.com (Gerrit)

    unread,
    Dec 15, 2025, 8:51:45 AM (24 hours ago) Dec 15
    to Maksim Ivanov, Leszek Swirski, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Maksim Ivanov and Michael Lippautz

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

    📍 Job win-11-perf/jetstream2 complete.

    See results at: https://pinpoint-dot-chromeperf.appspot.com/job/17e4939d310000

    Gerrit-Comment-Date: Mon, 15 Dec 2025 13:51:41 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    chromeperf@appspot.gserviceaccount.com (Gerrit)

    unread,
    Dec 15, 2025, 9:06:19 AM (24 hours ago) Dec 15
    to Maksim Ivanov, Leszek Swirski, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Maksim Ivanov and Michael Lippautz

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

    📍 Job mac-m1_mini_2020-perf/jetstream2 complete.

    See results at: https://pinpoint-dot-chromeperf.appspot.com/job/141ed2c0b10000

    Gerrit-Comment-Date: Mon, 15 Dec 2025 14:06:12 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Maksim Ivanov (Gerrit)

    unread,
    Dec 15, 2025, 9:59:08 AM (23 hours ago) Dec 15
    to chrom...@appspot.gserviceaccount.com, Leszek Swirski, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
    Attention needed from Leszek Swirski and Michael Lippautz

    Maksim Ivanov voted and added 2 comments

    Votes added by Maksim Ivanov

    Auto-Submit+1

    2 comments

    File src/d8/d8.cc
    Line 539, Patchset 14: data_ = static_cast<char*>(v8::internal::IsolateGroup::current()
    ->external_strings_cage()
    ->Allocate(length_));
    Michael Lippautz . resolved

    Can we hide this allocate/free pair behind some RAII struct that is owned by the resource?

    Alternatively, let's store at least a span internally. I am aware that there's separate void*/size_t getters which makes this moot but at least we leave the internals in okay shape.

    Maksim Ivanov

    Makes sense. Added a custom allocator class.

    I'm trying to use it with std::vector<T> - seems like it's the simplest way to integrate the custom allocator. However I'll need to check performance benchmarks; if it's visible then std::unique_ptr wiht a custom deleter would be an alternative.

    Maksim Ivanov

    No regressions on common benchmarks, so the std::vector-backed string resource solution seems OK.

    File src/sandbox/testing.cc
    Line 696, Patchset 14: fprintf(stderr, "External strings cage bounds: [%p,%p)\n",
    Leszek Swirski . resolved

    left over? you shouldn't print this unconditionally.

    Maksim Ivanov

    The code already prints the sandbox boundaries: https://source.chromium.org/chromium/chromium/src/+/main:v8/src/sandbox/testing.cc;l=968;drc=325c5b532c768c5d5b9c462d48102fdc071134a6 . I thought same might be useful for the new cage, so that we can debug it easier if something goes wrong with the cage. I can remove it if the benefits don't outweigh the bit of extra spam.

    Leszek Swirski

    Oh then it's fine

    Maksim Ivanov

    resolving

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Leszek Swirski
    • Michael Lippautz
    Submit Requirements:
      • requirement 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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
      Gerrit-Change-Number: 7171994
      Gerrit-PatchSet: 17
      Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
      Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
      Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
      Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
      Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Attention: Leszek Swirski <les...@chromium.org>
      Gerrit-Comment-Date: Mon, 15 Dec 2025 14:59:04 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Maksim Ivanov <em...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      chromeperf@appspot.gserviceaccount.com (Gerrit)

      unread,
      Dec 15, 2025, 11:49:27 AM (21 hours ago) Dec 15
      to Maksim Ivanov, Leszek Swirski, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Maksim Ivanov and Michael Lippautz

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

      📍 Job mac-m1_mini_2020-perf/jetstream2 complete.

      See results at: https://pinpoint-dot-chromeperf.appspot.com/job/16c9208b310000

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Maksim Ivanov
      • Michael Lippautz
      Submit Requirements:
      • requirement 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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
      Gerrit-Change-Number: 7171994
      Gerrit-PatchSet: 20
      Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
      Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
      Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
      Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
      Gerrit-Attention: Maksim Ivanov <em...@chromium.org>
      Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Comment-Date: Mon, 15 Dec 2025 16:49:22 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      chromeperf@appspot.gserviceaccount.com (Gerrit)

      unread,
      Dec 15, 2025, 12:22:34 PM (20 hours ago) Dec 15
      to Maksim Ivanov, Leszek Swirski, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Maksim Ivanov and Michael Lippautz

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

      📍 Job linux-perf/jetstream2 complete.

      See results at: https://pinpoint-dot-chromeperf.appspot.com/job/1353ddc0b10000

      Gerrit-Comment-Date: Mon, 15 Dec 2025 17:22:29 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Maksim Ivanov (Gerrit)

      unread,
      5:22 AM (3 hours ago) 5:22 AM
      to chrom...@appspot.gserviceaccount.com, Leszek Swirski, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
      Attention needed from Michael Lippautz

      Maksim Ivanov voted and added 1 comment

      Votes added by Maksim Ivanov

      Auto-Submit+1
      Commit-Queue+2

      1 comment

      Patchset-level comments
      File-level comment, Patchset 3:
      Maksim Ivanov . resolved

      PTAL - this is not finished, but sending this out early in case of any high-level feedback. Thanks!

      Maksim Ivanov

      Proceeding given two LGTMs and that I addressed Michael's comments. Thanks for the reviews.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Michael Lippautz
      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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
        Gerrit-Change-Number: 7171994
        Gerrit-PatchSet: 20
        Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
        Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
        Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
        Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
        Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
        Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
        Gerrit-Comment-Date: Tue, 16 Dec 2025 10:22:06 +0000
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Maksim Ivanov (Gerrit)

        unread,
        5:24 AM (3 hours ago) 5:24 AM
        to chrom...@appspot.gserviceaccount.com, Leszek Swirski, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
        Attention needed from Leszek Swirski, Michael Lippautz and Omer Katz

        Maksim Ivanov added 1 comment

        Patchset-level comments
        File-level comment, Patchset 20 (Latest):
        Maksim Ivanov . resolved

        Hmm, apparently I lost LGTMs during one of updates. Please re-stamp; thanks!

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Leszek Swirski
        • Michael Lippautz
        • Omer Katz
        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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
        Gerrit-Change-Number: 7171994
        Gerrit-PatchSet: 20
        Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
        Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
        Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
        Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
        Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
        Gerrit-Attention: Omer Katz <omer...@chromium.org>
        Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
        Gerrit-Attention: Leszek Swirski <les...@chromium.org>
        Gerrit-Comment-Date: Tue, 16 Dec 2025 10:24:41 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Leszek Swirski (Gerrit)

        unread,
        6:58 AM (2 hours ago) 6:58 AM
        to Maksim Ivanov, chrom...@appspot.gserviceaccount.com, Omer Katz, Michael Lippautz, V8 LUCI CQ, AyeAye, victorgo...@chromium.org, v8-re...@googlegroups.com
        Attention needed from Maksim Ivanov, Michael Lippautz and Omer Katz

        Leszek Swirski voted

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

        Related details

        Attention is currently required from:
        • Maksim Ivanov
        • Michael Lippautz
        • Omer Katz
        Submit Requirements:
          • requirement satisfiedCode-Owners
          • requirement is not 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: Ic87df64cad76fbd89f4e1112de548f5fddca1da6
          Gerrit-Change-Number: 7171994
          Gerrit-PatchSet: 20
          Gerrit-Owner: Maksim Ivanov <em...@chromium.org>
          Gerrit-Reviewer: Leszek Swirski <les...@chromium.org>
          Gerrit-Reviewer: Maksim Ivanov <em...@chromium.org>
          Gerrit-Reviewer: Michael Lippautz <mlip...@chromium.org>
          Gerrit-Reviewer: Omer Katz <omer...@chromium.org>
          Gerrit-Attention: Omer Katz <omer...@chromium.org>
          Gerrit-Attention: Maksim Ivanov <em...@chromium.org>
          Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
          Gerrit-Comment-Date: Tue, 16 Dec 2025 11:58:28 +0000
          Gerrit-HasComments: No
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy
          Reply all
          Reply to author
          Forward
          0 new messages