aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/mem_linux.go
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2019-01-02 18:47:06 +0000
committerBrad Fitzpatrick <bradfitz@golang.org>2019-01-02 20:55:53 +0000
commit22738f07c88ac9dd1159da15675fedeeba80c45d (patch)
tree64c273acf79371e6d155351bad7c92ac0d43b855 /src/runtime/mem_linux.go
parent8e6396115e56d8e0cbecd6904f94c8d893db1724 (diff)
downloadgo-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.go7
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.