aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2016-08-19 16:03:14 -0400
committerChris Broadfoot <cbro@golang.org>2016-09-07 18:48:36 +0000
commit40712a962573a9ad987c71ba2cb24e6d430b559d (patch)
tree5fc957725625228965c3e5ce2994d6114c279e32
parent24f46bd34fff99cbf64762b65e7896fd1e8f2f7c (diff)
downloadgo-40712a962573a9ad987c71ba2cb24e6d430b559d.tar.gz
go-40712a962573a9ad987c71ba2cb24e6d430b559d.zip
[release-branch.go1.7] runtime: fix check for vacuous page boundary rounding again
The previous fix for this, commit 336dad2a, had everything right in the commit message, but reversed the test in the code. Fix the test in the code. This reversal effectively disabled the scavenger on large page systems *except* in the rare cases where this code was originally wrong, which is why it didn't obviously show up in testing. Fixes #16644. Again. :( Change-Id: I27cce4aea13de217197db4b628f17860f27ce83e Reviewed-on: https://go-review.googlesource.com/27402 Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-on: https://go-review.googlesource.com/28631 Run-TryBot: Chris Broadfoot <cbro@golang.org>
-rw-r--r--src/runtime/mheap.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/runtime/mheap.go b/src/runtime/mheap.go
index db60f7a872..8db2fcc288 100644
--- a/src/runtime/mheap.go
+++ b/src/runtime/mheap.go
@@ -917,7 +917,9 @@ func scavengelist(list *mSpanList, now, limit uint64) uintptr {
// more memory than we want.)
start = (start + sys.PhysPageSize - 1) &^ (sys.PhysPageSize - 1)
end &^= sys.PhysPageSize - 1
- if start == end {
+ if end <= start {
+ // start and end don't span a
+ // whole physical page.
continue
}
}