• Adam Klein's avatar
    Revert "[wasm] Reset PKRU before spawning new threads" · 5ada213c
    Adam Klein authored
    This reverts commit 8218c061.
    
    Reason for revert: compile failures, e.g.:
    https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Mac%20-%20arm64%20-%20release%20builder/11040/overview
    
    Original change's description:
    > [wasm] Reset PKRU before spawning new threads
    >
    > We sometimes hit the DCHECK in the wasm code manager:
    >   DCHECK_IMPLIES(writable, !MemoryProtectionKeyWritable());
    >
    > This is because we spawn new threads while having a
    > {CodeSpaceWriteScope} open. In the case of PKU, this changes the PKRU
    > register to allow writes to the code space, and the value of that
    > register is inherited by any new thread. If this thread then tries to
    > switch to writable code spaces, it hits the DCHECK. It would hit a
    > similar DCHECK when trying to execute code.
    >
    > We fix this issue by temporarily resetting the PKRU register to
    > non-writable while we call the {NotifyConcurrencyIncrease} method. This
    > is not a very robust solution, as any new call that potentially happens
    > inside a {CodeSpaceWriteScope} needs to do the same, but refactoring the
    > code to avoid spawning new threads while being in writable state would
    > be a lot of work with other downsides.
    >
    > R=​jkummerow@chromium.org
    >
    > Bug: v8:13075
    > Change-Id: Ibc7270aa597902dc6d9649cb6bcdfce8b1a9bafc
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3762579
    > Commit-Queue: Clemens Backes <clemensb@chromium.org>
    > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#81729}
    
    Bug: v8:13075
    Change-Id: I235e7263856a37cf0f4aa1c27493aac8e6db7910
    No-Presubmit: true
    No-Tree-Checks: true
    No-Try: true
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3763587
    Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
    Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
    Auto-Submit: Adam Klein <adamk@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#81730}
    5ada213c
Name
Last commit
Last update
..
baseline Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
OWNERS Loading commit data...
assembler-buffer-cache.cc Loading commit data...
assembler-buffer-cache.h Loading commit data...
branch-hint-map.h Loading commit data...
c-api.cc Loading commit data...
c-api.h Loading commit data...
canonical-types.cc Loading commit data...
canonical-types.h Loading commit data...
code-space-access.cc Loading commit data...
code-space-access.h Loading commit data...
compilation-environment.h Loading commit data...
constant-expression-interface.cc Loading commit data...
constant-expression-interface.h Loading commit data...
constant-expression.cc Loading commit data...
constant-expression.h Loading commit data...
decoder.h Loading commit data...
function-body-decoder-impl.h Loading commit data...
function-body-decoder.cc Loading commit data...
function-body-decoder.h Loading commit data...
function-compiler.cc Loading commit data...
function-compiler.h Loading commit data...
graph-builder-interface.cc Loading commit data...
graph-builder-interface.h Loading commit data...
jump-table-assembler.cc Loading commit data...
jump-table-assembler.h Loading commit data...
leb-helper.h Loading commit data...
local-decl-encoder.cc Loading commit data...
local-decl-encoder.h Loading commit data...
memory-protection-key.cc Loading commit data...
memory-protection-key.h Loading commit data...
memory-tracing.cc Loading commit data...
memory-tracing.h Loading commit data...
module-compiler.cc Loading commit data...
module-compiler.h Loading commit data...
module-decoder-impl.h Loading commit data...
module-decoder.cc Loading commit data...
module-decoder.h Loading commit data...
module-instantiate.cc Loading commit data...
module-instantiate.h Loading commit data...
names-provider.cc Loading commit data...
names-provider.h Loading commit data...
object-access.h Loading commit data...
signature-map.cc Loading commit data...
signature-map.h Loading commit data...
simd-shuffle.cc Loading commit data...
simd-shuffle.h Loading commit data...
stacks.h Loading commit data...
streaming-decoder.cc Loading commit data...
streaming-decoder.h Loading commit data...
string-builder-multiline.h Loading commit data...
string-builder.h Loading commit data...
struct-types.h Loading commit data...
sync-streaming-decoder.cc Loading commit data...
value-type.cc Loading commit data...
value-type.h Loading commit data...
wasm-arguments.h Loading commit data...
wasm-code-manager.cc Loading commit data...
wasm-code-manager.h Loading commit data...
wasm-constants.h Loading commit data...
wasm-debug.cc Loading commit data...
wasm-debug.h Loading commit data...
wasm-disassembler-impl.h Loading commit data...
wasm-disassembler.cc Loading commit data...
wasm-engine.cc Loading commit data...
wasm-engine.h Loading commit data...
wasm-external-refs.cc Loading commit data...
wasm-external-refs.h Loading commit data...
wasm-feature-flags.h Loading commit data...
wasm-features.cc Loading commit data...
wasm-features.h Loading commit data...
wasm-import-wrapper-cache.cc Loading commit data...
wasm-import-wrapper-cache.h Loading commit data...
wasm-init-expr.cc Loading commit data...
wasm-init-expr.h Loading commit data...
wasm-js.cc Loading commit data...
wasm-js.h Loading commit data...
wasm-limits.h Loading commit data...
wasm-linkage.h Loading commit data...
wasm-module-builder.cc Loading commit data...
wasm-module-builder.h Loading commit data...
wasm-module-sourcemap.cc Loading commit data...
wasm-module-sourcemap.h Loading commit data...
wasm-module.cc Loading commit data...
wasm-module.h Loading commit data...
wasm-objects-inl.h Loading commit data...
wasm-objects.cc Loading commit data...
wasm-objects.h Loading commit data...
wasm-objects.tq Loading commit data...
wasm-opcodes-inl.h Loading commit data...
wasm-opcodes.cc Loading commit data...
wasm-opcodes.h Loading commit data...
wasm-result.cc Loading commit data...
wasm-result.h Loading commit data...
wasm-serialization.cc Loading commit data...
wasm-serialization.h Loading commit data...
wasm-subtyping.cc Loading commit data...
wasm-subtyping.h Loading commit data...
wasm-tier.h Loading commit data...
wasm-value.h Loading commit data...