diff options
| author | Carlos Eduardo Seo <cseo@linux.vnet.ibm.com> | 2018-08-06 15:36:16 -0500 |
|---|---|---|
| committer | Lynn Boger <laboger@linux.vnet.ibm.com> | 2018-10-23 18:10:38 +0000 |
| commit | 5c472132bf88cc04c85ad5f848d8a2f77f21b228 (patch) | |
| tree | 3409d087b15b0d8cc8181ed5a1e60249c1a46e0d /src/internal/bytealg | |
| parent | 5dbc67a99a99011fce1c1b7c983d2aa35247b950 (diff) | |
| download | go-5c472132bf88cc04c85ad5f848d8a2f77f21b228.tar.xz | |
cmd/compile, runtime: add new lightweight atomics for ppc64x
This change creates the infrastructure for new lightweight atomics
primitives in runtime/internal/atomic:
- LoadAcq, for load-acquire
- StoreRel, for store-release
- CasRel, for Compare-and-Swap-release
and implements them for ppc64x. There is visible performance improvement
in producer-consumer scenarios, like BenchmarkChanProdCons*:
benchmark old ns/op new ns/op delta
BenchmarkChanProdCons0-48 2034 2034 +0.00%
BenchmarkChanProdCons10-48 1798 1608 -10.57%
BenchmarkChanProdCons100-48 1596 1585 -0.69%
BenchmarkChanProdConsWork0-48 2084 2046 -1.82%
BenchmarkChanProdConsWork10-48 1829 1668 -8.80%
BenchmarkChanProdConsWork100-48 1650 1650 +0.00%
Fixes #21348
Change-Id: I1f6ce377e4a0fe4bd7f5f775e8036f50070ad8db
Reviewed-on: https://go-review.googlesource.com/c/142277
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/internal/bytealg')
0 files changed, 0 insertions, 0 deletions
