aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2018-02-20 18:16:56 -0500
committerAustin Clements <austin@google.com>2018-02-21 03:27:07 +0000
commitc823155828e5e6f4f7aa5683edb6f9e5dfd31d28 (patch)
treef3e6b87353c6dc979d91c65bc81651a0953bf8b1 /src/runtime
parent16c5d30c84a7dbba88f89585b0238f52cc6b4494 (diff)
downloadgo-c823155828e5e6f4f7aa5683edb6f9e5dfd31d28.tar.xz
runtime: ensure sysStat for mheap_.arenas is aligned
We don't want to account the memory for mheap_.arenas because most of it is never touched, so currently we pass the address of a uint64 on the heap. However, at least on mips, it's possible for this uint64 to be unaligned, which causes the atomic add in mSysStatInc to crash. Fix this by instead passing a nil stat pointer. Fixes #23946. Change-Id: I091587df1b3066c330b6bb4d834e4596c407910f Reviewed-on: https://go-review.googlesource.com/95695 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/malloc.go3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/runtime/malloc.go b/src/runtime/malloc.go
index ecbae721dd..e9150fdbb6 100644
--- a/src/runtime/malloc.go
+++ b/src/runtime/malloc.go
@@ -302,8 +302,7 @@ func mallocinit() {
// Map the arena index. Most of this will never be written to,
// so we don't account it.
- var untracked uint64
- mheap_.arenas = (*[memLimit / heapArenaBytes]*heapArena)(persistentalloc(unsafe.Sizeof(*mheap_.arenas), sys.PtrSize, &untracked))
+ mheap_.arenas = (*[memLimit / heapArenaBytes]*heapArena)(persistentalloc(unsafe.Sizeof(*mheap_.arenas), sys.PtrSize, nil))
if mheap_.arenas == nil {
throw("failed to allocate arena index")
}