On Fri, Jun 13, 2025 at 12:06 PM Erik Corry <erikco...@chromium.org> wrote:
> This isn't really caused by the IsolateGroup feature. The PagePool allows > unused pages to be put in a pool so that other isolates can reuse them. > This is a new performance feature from V8. It is more efficient to reuse a > page than to unmap and then remap it later, which is two syscalls and > probably disrupts the TLB. > > The page pool would cause the same inter-isolate interactions if > IsolateGroups did not exist. > > I think the following untested uncompiled patch might fix your problem: > > diff --git a/src/heap/heap.cc b/src/heap/heap.cc > index 090c1f780d2..d063998a963 100644 > --- a/src/heap/heap.cc > +++ b/src/heap/heap.cc > @@ -6402,6 +6402,7 @@ void Heap::TearDown() { > > read_only_space_ = nullptr; > > + memory_allocator()->pool()->ReleaseImmediately(isolate()); > memory_allocator()->pool()->ReleaseOnTearDown(isolate()); > memory_allocator()->TearDown(); > > > This will just release pages immediately, instead of putting them in the > shared pool where other isolates can use them. > Yes, this will work. We will need to refactor the pool a bit in the near term and can add a few flags to disable it selectively. > > On Thu, Jun 12, 2025 at 4:44 PM 'James Snell' via v8-dev < > v8-dev@googlegroups.com> wrote: > >> Hey all, >> >> Yeah, we (Cloudflare Workers runtime folks) worked with Igalia and asked >> them to implement the IsolateGroups mechanism specifically for pointer >> compression support and would really have no intention of supporting it >> without pointer compression. In workers we will create thousands of >> isolates within a single process and can't afford to be limited by the >> single pointer compression cage for the entire process. We also want to >> start making use of the v8 sandbox. We were running a non-supported >> configuration with pointer compression enabled but otherwise diverging from >> the supported configuration in a way that was not sustainable and isolate >> groups allow us to have better alignment there. It *might* be possible to >> have a variation of isolate groups that works without pointer compression >> but it's not something that we'd be interested in and not something we'd >> ask our friends at Igalia to work on. >> >> - James >> >> >> On Thu, Jun 12, 2025 at 7:10 AM Michael Lippautz <mlippa...@chromium.org> >> wrote: >> >>> >>> >>> On Thu, Jun 12, 2025 at 3:37 PM ClearScript Developers < >>> clearscript...@gmail.com> wrote: >>> >>>> Greetings! >>>> >>>> We've run into a new issue in V8 13.7 (upgrading from 13.5). In a >>>> multi-isolate application, tearing down one isolate can trigger synchronous >>>> activity in another – specifically, the posting of ReleasePooledChunksTask. >>>> >>>> Evidently, that happens because, by default, both isolates are in the >>>> same group. Our understanding is that isolate groups are a new feature that >>>> allows isolates to share certain resources, and that, unfortunately, is a >>>> problem for us. In our case, isolates must remain... isolated. >>>> >>>> Setting up a dedicated group for each isolate appears to be possible, >>>> but isolate groups require pointer compression, which we'd prefer to >>>> disable. Even if we enabled it, pointer compression isn't supported on >>>> 32-bit systems, which we still support. >>>> >>>> Can someone shed some light? Why do isolate groups require pointer >>>> compression? How difficult would it be to remove that restriction? >>>> >>>> >>> At this point V8 only officially supports a configuration with a single >>> IsolateGroup. >>> >>> The concept of IsolateGroup was introduced by other embedders and as you >>> wrote it's really for sharing a bunch of resources. E.g., read-only space, >>> page pool, and at this point also a pointer compression cage. You could >>> imagine an IsolateGroup without pointer compression -- at this point this >>> is just not implemented. >>> >>> For maintenance and security reasons we can't accept any non-trivial >>> patches for this area at this point as we cannot reliably test other >>> configurations and ensure that they don't cause security problems down the >>> line. >>> >>> -Michael >>> >>> >>> -- >>> -- >>> v8-dev mailing list >>> v8-dev@googlegroups.com >>> http://groups.google.com/group/v8-dev >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "v8-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to v8-dev+unsubscr...@googlegroups.com. >>> To view this discussion visit >>> https://groups.google.com/d/msgid/v8-dev/CAH%2BmL5CWjvnpqfYPvv_rdsmH6h-x4mWOtzqDCdPjLA%2BV0c4oQA%40mail.gmail.com >>> <https://groups.google.com/d/msgid/v8-dev/CAH%2BmL5CWjvnpqfYPvv_rdsmH6h-x4mWOtzqDCdPjLA%2BV0c4oQA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> -- >> v8-dev mailing list >> v8-dev@googlegroups.com >> http://groups.google.com/group/v8-dev >> --- >> You received this message because you are subscribed to the Google Groups >> "v8-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to v8-dev+unsubscr...@googlegroups.com. >> To view this discussion visit >> https://groups.google.com/d/msgid/v8-dev/CACFvHWnXBZNRsFWwJtuoHnXhf4KHZgtQGYdM5z9XBcQXdWh3pA%40mail.gmail.com >> <https://groups.google.com/d/msgid/v8-dev/CACFvHWnXBZNRsFWwJtuoHnXhf4KHZgtQGYdM5z9XBcQXdWh3pA%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > -- > v8-dev mailing list > v8-dev@googlegroups.com > http://groups.google.com/group/v8-dev > --- > You received this message because you are subscribed to the Google Groups > "v8-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to v8-dev+unsubscr...@googlegroups.com. > To view this discussion visit > https://groups.google.com/d/msgid/v8-dev/CAHZxHpjOTR1T35eHRE2O71t9HTbd4jX2hNv6HZHy3ed%2B-U1Acw%40mail.gmail.com > <https://groups.google.com/d/msgid/v8-dev/CAHZxHpjOTR1T35eHRE2O71t9HTbd4jX2hNv6HZHy3ed%2B-U1Acw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/v8-dev/CAH%2BmL5C9Q1XyFo3_pB7wXDC8uGvTG7nOqwtCDoF25xMqkzi5MA%40mail.gmail.com.