Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(8)

Issue 93280043: code review 93280043: runtime, sync/atomic: add memory barriers in atomic ope...

Can't Edit
Can't Publish+Mail
Start Review
Created:
11 years, 8 months ago by dvyukov
Modified:
11 years ago
Reviewers:
rsc
CC:
golang-codereviews, minux1, rsc, minux, dave_cheney.net, ruiu
Visibility:
Public.

Description

runtime, sync/atomic: add memory barriers in atomic operations on ARM Both runtime and sync/atomic atomic operations promise full memory barriers, there are no barriers on ARM. Not sure how it was working before... Pointed by Rui in https://codereview.appspot.com/91230048/ Have anybody seen unexplinable crashes on multicore ARM machines? I can look into creating stress tests that should expose the missing barrier. And I would appreciate if somebody tests it, because the change is completely blind on my side.

Patch Set 1 #

Patch Set 2 : diff -r 5fdfef4f39f6 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 3 : diff -r 5fdfef4f39f6 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 4 : diff -r 5fdfef4f39f6 https://dvyukov%40google.com@code.google.com/p/go/ #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+20 lines, -0 lines) Patch
M src/pkg/runtime/asm_arm.s View 1 2 chunks +2 lines, -0 lines 1 comment Download
M src/pkg/sync/atomic/asm_arm.s View 1 2 12 chunks +14 lines, -0 lines 0 comments Download
M src/pkg/sync/atomic/asm_freebsd_arm.s View 1 2 chunks +2 lines, -0 lines 0 comments Download
M src/pkg/sync/atomic/asm_netbsd_arm.s View 1 2 chunks +2 lines, -0 lines 0 comments Download

Messages

Total messages: 16
dvyukov
Hello golang-codereviews@googlegroups.com (cc: dave@cheney.net, minux.ma@gmail.com, rsc@golang.org, ruiu@google.com), I'd like you to review this change to ...
11 years, 8 months ago (2014-05-12 17:07:28 UTC) #1
dvyukov
Now that I try to build it, I see that it won't work: pkg/runtime/asm_arm.s:579 syntax ...
11 years, 8 months ago (2014-05-12 17:08:03 UTC) #2
minux1
https://codereview.appspot.com/93280043/diff/60001/src/pkg/runtime/asm_arm.s File src/pkg/runtime/asm_arm.s (right): https://codereview.appspot.com/93280043/diff/60001/src/pkg/runtime/asm_arm.s#newcode579 src/pkg/runtime/asm_arm.s:579: BYTE $0xf3; BYTE $0xbf; BYTE $0x8f; BYTE $0x5b // ...
11 years, 8 months ago (2014-05-12 18:09:59 UTC) #3
minux1
On 2014/05/12 17:08:03, dvyukov wrote: > Now that I try to build it, I see ...
11 years, 8 months ago (2014-05-12 18:10:39 UTC) #4
ruiu
I filed a bug for this: https://code.google.com/p/go/issues/detail?id=7977 On Mon, May 12, 2014 at 11:10 AM, ...
11 years, 8 months ago (2014-05-12 18:14:03 UTC) #5
rsc
NOT LGTM I believe you that this could be a problem in theory, but it ...
11 years, 8 months ago (2014-05-12 18:42:55 UTC) #6
dvyukov
On 2014/05/12 18:42:55, rsc wrote: > NOT LGTM > > I believe you that this ...
11 years, 5 months ago (2014-07-16 13:16:22 UTC) #7
minux
On 2014/07/16 13:16:22, dvyukov wrote: > I think that now it affects nacl/arm. right, at ...
11 years, 5 months ago (2014-07-16 19:59:50 UTC) #8
dvyukov
TestStoreLoadSeqCst and TestStoreLoadRelAcq should demonstrate missing barriers. Are they executed on the builder? Try to ...
11 years, 5 months ago (2014-07-16 20:03:39 UTC) #9
minux
On Wed, Jul 16, 2014 at 4:03 PM, Dmitry Vyukov <dvyukov@google.com> wrote: > TestStoreLoadSeqCst and ...
11 years, 5 months ago (2014-07-16 20:08:01 UTC) #10
minux
On Wed, Jul 16, 2014 at 4:07 PM, minux <minux@golang.org> wrote: > On Wed, Jul ...
11 years, 5 months ago (2014-07-16 20:11:29 UTC) #11
minux
On Wed, Jul 16, 2014 at 4:11 PM, minux <minux@golang.org> wrote: > On Wed, Jul ...
11 years, 5 months ago (2014-07-17 17:39:10 UTC) #12
rsc
This doesn't really matter. It's still a hypothetical.
11 years, 5 months ago (2014-07-17 17:40:01 UTC) #13
minux
On Thu, Jul 17, 2014 at 1:40 PM, Russ Cox <rsc@golang.org> wrote: > This doesn't ...
11 years, 5 months ago (2014-07-18 06:55:19 UTC) #14
dvyukov
I can say that TestStoreLoadSeqCst reliably fails on amd64 if you implement AtomicStore as plain ...
11 years, 5 months ago (2014-07-18 08:52:34 UTC) #15
gobot
11 years ago (2014-12-19 05:19:06 UTC) #16
R=close

To the author of this CL:

The Go project has moved to Gerrit Code Review.

If this CL should be continued, please see the latest version of
https://golang.org/doc/contribute.html for instructions on
how to set up Git and the Go project's Gerrit codereview plugin,
and then create a new change with your current code.

If there has been discussion on this CL, please give a link to it
(golang.org/cl/93280043 is best) in the description in your
new CL.

Thanks very much.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b