]> Cypherpunks repositories - gostls13.git/commit
runtime: call sysHugePage less often
authorMichael Knyszek <mknyszek@google.com>
Fri, 19 Jul 2019 23:35:24 +0000 (19:35 -0400)
committerAustin Clements <austin@google.com>
Tue, 30 Jul 2019 18:53:01 +0000 (18:53 +0000)
commit8c3040d768e70fd6cf9f992fe4745edbf51bc581
treefc6c89788e662fdc0a753fae7620fdc4ee8d51b3
parenta41ebe6e259af020d4ce7029544439b39d07936b
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>
src/runtime/mheap.go