• Clemens Backes's avatar
    Reland "[elements] Avoid racy data reads/writes" · 63b7afb4
    Clemens Backes authored
    This is a reland of 296fa964. The fix is
    to dynamically check for alignment instead of relying on
    {alignof(ElementType)}. I updated the comment to state that independent
    of pointer compression we do not guarantee the alignment that the
    compiler assumes (hence we rely on undefined behaviour here).
    
    Original change's description:
    > [elements] Avoid racy data reads/writes
    >
    > Instead of annotating those racy reads / writes to be ignore by TSan,
    > just use relaxed atomics. This makes us not rely on undefined behaviour,
    > and is unlikely to introduce noticeable overhead.
    >
    > This removes the only uses of TSAN_ANNOTATE_IGNORE_WRITES_BEGIN and
    > friends, which allows us to remove the whole tsan.h header.
    >
    > R=ulan@chromium.org
    > CC=​mlippautz@chromium.org
    >
    > Bug: v8:11704
    > Change-Id: Ie6694c0ae5b40856b56fb97253ce626ec1f4c263
    > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
    > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859957
    > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
    > Commit-Queue: Clemens Backes <clemensb@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#74321}
    
    Bug: v8:11704
    Change-Id: If75674785ca776dac06ed821f0032f865793dd77
    Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
    Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
    Cq-Include-Trybots: luci.v8.try:v8_odroid_arm_rel_ng
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2867479Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#74402}
    63b7afb4
Name
Last commit
Last update
.github 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...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.flake8 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...
COMMON_OWNERS Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
INTL_OWNERS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
MIPS_OWNERS Loading commit data...
OWNERS Loading commit data...
PPC_OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
RISCV_OWNERS Loading commit data...
S390_OWNERS Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...