commit | 8c3040d768e70fd6cf9f992fe4745edbf51bc581 | [log] [tgz] |
---|---|---|
author | Michael Knyszek <mknyszek@google.com> | Fri Jul 19 19:35:24 2019 -0400 |
committer | Austin Clements <austin@google.com> | Tue Jul 30 18:53:01 2019 +0000 |
tree | fc6c89788e662fdc0a753fae7620fdc4ee8d51b3 | |
parent | a41ebe6e259af020d4ce7029544439b39d07936b [diff] |
runtime: call sysHugePage less often Currently when we coalesce memory we make a sysHugePage call (MADV_HUGEPAGE) to ensure freed and coalesced huge pages are treated as such so the scavenger's assumptions about performance are more in line with reality. Unfortunately we do it way too often because we do it if there was any change to the huge page count for the span we're coalescing into, not taking into account that it could coalesce with its neighbors and not actually create a new huge page. This change makes it so that it only calls sysHugePage if the original huge page counts between the span to be coalesced into and its neighbors do not add up (i.e. a new huge page was created due to alignment). Calls to sysHugePage will now happen much less frequently, as intended. Updates #32828. Change-Id: Ia175919cb79b730a658250425f97189e27d7fda3 Reviewed-on: https://go-review.googlesource.com/c/go/+/186926 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Official binary distributions are available at https://golang.org/dl/.
After downloading a binary release, visit https://golang.org/doc/install or load doc/install.html in your web browser for installation instructions.
If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source or load doc/install-source.html in your web browser for source installation instructions.
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.