• 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
BUILD.gn 205 KB