• Michael Starzinger's avatar
    [wasm] Support concurrent patching of jump table. · 7579b1e3
    Michael Starzinger authored
    This adds initial support for concurrently patching jump table slots. It
    is needed once different Isolates share code (for the --wasm-shared-code
    feature). We need to ensure that instructions holding the target address
    within a jump table slot do not cross cache-line boundaries. To do this,
    the jump table has been split into consecutive pages.
    
    Note that this also adds a stress test for multiple threads hammering at
    a single slot concurrently. The test is currently limited to the ia32
    and the x64 architecture, but will be extended to cover others. The test
    reliably triggers tearing of the target address on almost every run of
    the test and hence serves to prevent regressions.
    
    R=clemensh@chromium.org
    TEST=cctest/test-jump-table-assembler
    BUG=v8:8018
    
    Change-Id: Ife56bbb61ffcae5d8906ca7b8c604b195603707c
    Reviewed-on: https://chromium-review.googlesource.com/1163664
    Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
    Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#54942}
    7579b1e3
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...