• Dominik Inführ's avatar
    Reland "[heap] Attach to shared isolate after setting up main thread" · 535242ff
    Dominik Inführ authored
    This is a reland of 929b83fb
    
    This version of the CL also fixes initialization of the
    marking_barrier_ in the LocalHeap constructor.
    
    This CL also got rebased on Victor's CL in https://crrev.com/c/3229361.
    It added a code_space_allocator_ in LocalHeap which needs to be
    initialized a bit later on the main thread as well.
    
    Original change's description:
    > [heap] Attach to shared isolate after setting up main thread
    >
    > Attach to the shared isolate after the main thread was set up. Otherwise
    > it could happen that a shared GC initiated from another isolate might
    > see no threads are running and performs the safepoint operation in the
    > middle of isolate deserialization.
    >
    > We use DisallowSafepoints to check that the isolate doesn't join a
    > global safepoint before deserialization is complete. DisallowSafepoints
    > used to prevent only invocations of Safepoint() but was updated to
    > also prevent Park() and Unpark() invocations. Each state change could
    > cause the thread to reach a safepoint, which would allow a shared GC
    > to run.
    >
    > We now also DCHECK that every isolate has at least one local heap and
    > that shared collections aren't started before deserialization is
    > complete.
    >
    > Bug: v8:11708
    > Change-Id: Iba3fb59dd951d5ee4fc9934158062287302fc279
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3221157
    > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
    > Reviewed-by: Shu-yu Guo <syg@chromium.org>
    > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#77424}
    
    Bug: v8:11708
    Change-Id: I7d44e4a5f76cc09092c2444cede10e9331222c1d
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3229361Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Reviewed-by: 's avatarShu-yu Guo <syg@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#77448}
    535242ff
Name
Last commit
Last update
..
benchmarks Loading commit data...
bigint Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
debugging Loading commit data...
fuzzer Loading commit data...
fuzzilli Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
test262 Loading commit data...
torque Loading commit data...
unittests Loading commit data...
wasm-api-tests Loading commit data...
wasm-js Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
OWNERS Loading commit data...