Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(179)

Issue 1619983004: Restrict volatile section of block header. (Closed)

Created:
4 years, 11 months ago by bcwhite
Modified:
4 years, 10 months ago
CC:
chromium-reviews, asvitkine+watch_chromium.org, vmpstr+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Restrict volatile section of block header. The clang compiler creates read-modify-write code for volatile uint64_t on 32-bit windows which causes segv when inside a read-only memory- mapped file. By reducing the "volatile" footprint, this should no longer be a problem. BUG=580241 TBR=asvitkine Committed: https://crrev.com/c03fc0ae7b182e1f51ba81f0a818087454937c51 Cr-Commit-Position: refs/heads/master@{#373704}

Patch Set 1 #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+17 lines, -8 lines) Patch
M base/metrics/persistent_memory_allocator.h View 1 chunk +5 lines, -4 lines 1 comment Download
M base/metrics/persistent_memory_allocator.cc View 1 chunk +12 lines, -4 lines 0 comments Download

Messages

Total messages: 25 (10 generated)
bcwhite
Glider... Touching atomic stuff here by reducing what is volatile and how it is declared ...
4 years, 11 months ago (2016-01-22 01:57:31 UTC) #2
Alexander Potapenko
+dvyukov Calling for help, because I'm not really familiar with volatiles behavior on Windows. Also, ...
4 years, 11 months ago (2016-01-22 10:05:13 UTC) #4
bcwhite
On 2016/01/22 10:05:13, Alexander Potapenko wrote: > +dvyukov > > Calling for help, because I'm ...
4 years, 11 months ago (2016-01-22 13:20:20 UTC) #5
bcwhite
+mk who found the issue with clang
4 years, 11 months ago (2016-01-22 13:22:40 UTC) #7
bcwhite
Ping?
4 years, 10 months ago (2016-01-28 15:46:08 UTC) #8
Dmitry Vyukov
LGTM I guess Is there a bug on clang? Why does't it use MMX/SSE on ...
4 years, 10 months ago (2016-02-02 16:05:36 UTC) #9
bcwhite
On 2016/02/02 16:05:36, Dmitry Vyukov wrote: > LGTM I guess > > Is there a ...
4 years, 10 months ago (2016-02-02 16:18:21 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1619983004/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1619983004/1
4 years, 10 months ago (2016-02-02 16:19:20 UTC) #12
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/141629)
4 years, 10 months ago (2016-02-02 16:54:21 UTC) #14
bcwhite
4 years, 10 months ago (2016-02-04 13:10:18 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1619983004/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1619983004/1
4 years, 10 months ago (2016-02-04 23:50:04 UTC) #18
commit-bot: I haz the power
Committed patchset #1 (id:1)
4 years, 10 months ago (2016-02-05 01:18:10 UTC) #20
commit-bot: I haz the power
Patchset 1 (id:??) landed as https://crrev.com/c03fc0ae7b182e1f51ba81f0a818087454937c51 Cr-Commit-Position: refs/heads/master@{#373704}
4 years, 10 months ago (2016-02-05 01:19:10 UTC) #22
Alexei Svitkine (slow)
lgtm I guess Is the plan to revert this to the previous state after we ...
4 years, 10 months ago (2016-02-05 19:31:32 UTC) #24
bcwhite
4 years, 10 months ago (2016-02-05 19:36:45 UTC) #25
Message was sent while issue was closed.
> Is the plan to revert this to the previous state after we have the new clang?
> (is that already in?)

No need.  This is better anyway as it allows the compiler to optimize access to
those fields that are write-once (during construction) but still be safe for
those that are updated in parallel.


https://codereview.chromium.org/1619983004/diff/1/base/metrics/persistent_mem...
> base/metrics/persistent_memory_allocator.h:254: const_cast<const
> char*>(mem_base_));
> I don't understand why there's a const_cast here?

I'll take another look.

Powered by Google App Engine
This is Rietveld 408576698