diff options
author | Brad Fitzpatrick <bradfitz@golang.org> | 2019-01-02 18:47:06 +0000 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@golang.org> | 2019-01-02 20:55:53 +0000 |
commit | 22738f07c88ac9dd1159da15675fedeeba80c45d (patch) | |
tree | 64c273acf79371e6d155351bad7c92ac0d43b855 /src/runtime/mem_linux.go | |
parent | 8e6396115e56d8e0cbecd6904f94c8d893db1724 (diff) | |
download | go-22738f07c88ac9dd1159da15675fedeeba80c45d.tar.gz go-22738f07c88ac9dd1159da15675fedeeba80c45d.zip |
runtime: add GODEBUG=madvdontneed=1
Fixes #28466
Change-Id: I05b2e0da09394d111913963b60f2ec865c9b4744
Reviewed-on: https://go-review.googlesource.com/c/155931
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'src/runtime/mem_linux.go')
-rw-r--r-- | src/runtime/mem_linux.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/runtime/mem_linux.go b/src/runtime/mem_linux.go index 845f72ded2..1e45ed6301 100644 --- a/src/runtime/mem_linux.go +++ b/src/runtime/mem_linux.go @@ -105,7 +105,12 @@ func sysUnused(v unsafe.Pointer, n uintptr) { throw("unaligned sysUnused") } - advise := atomic.Load(&adviseUnused) + var advise uint32 + if debug.madvdontneed != 0 { + advise = _MADV_DONTNEED + } else { + advise = atomic.Load(&adviseUnused) + } if errno := madvise(v, n, int32(advise)); advise == _MADV_FREE && errno != 0 { // MADV_FREE was added in Linux 4.5. Fall back to MADV_DONTNEED if it is // not supported. |