- 17 Jan, 2019 6 commits
-
-
Robert Griesemer authored
Updates #29799. Change-Id: I267c2c3ba3964e96903954affc248d0c52c4916c Reviewed-on: https://go-review.googlesource.com/c/158397Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Anthony Knyszek authored
As a result of changes earlier in Go 1.12, the scavenger became much more aggressive. In particular, when scavenged and unscavenged spans coalesced, they would always become scavenged. This resulted in most spans becoming scavenged over time. While this is good for keeping the RSS of the program low, it also causes many more undue page faults and many more calls to madvise. For most applications, the impact of this was negligible. But for applications that repeatedly grow and shrink the heap by large amounts, the overhead can be significant. The overhead was especially obvious on older versions of Linux where MADV_FREE isn't available and MADV_DONTNEED must be used. This change makes it so that scavenged spans will never coalesce with unscavenged spans. This results in fewer page faults overall. Aside from this, the expected impact of this change is more heap growths on average, as span allocations will be less likely to be fulfilled. To mitigate this slightly, this change also coalesces spans eagerly after scavenging, to at least ensure that all scavenged spans and all unscavenged spans are coalesced with each other. Also, this change adds additional logic in the case where two adjacent spans cannot coalesce. In this case, on platforms where the physical page size is larger than the runtime's page size, we realign the boundary between the two adjacent spans to a physical page boundary. The advantage of this approach is that "unscavengable" spans, that is, spans which cannot be scavenged because they don't cover at least a single physical page are grown to a size where they have a higher likelihood of being discovered by the runtime's scavenging mechanisms when they border a scavenged span. This helps prevent the runtime from accruing pockets of "unscavengable" memory in between scavenged spans, preventing them from coalescing. We specifically choose to apply this logic to all spans because it simplifies the code, even though it isn't strictly necessary. The expectation is that this change will result in a slight loss in performance on platforms where the physical page size is larger than the runtime page size. Update #14045. Change-Id: I64fd43eac1d6de6f51d7a2ecb72670f10bb12589 Reviewed-on: https://go-review.googlesource.com/c/158078 Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Michael Anthony Knyszek authored
Currently the code surrounding coalescing is duplicated between merging with the span before the span considered for coalescing and merging with the span after. This change factors out the shared portions of these codepaths into a local closure which acts as a helper. Change-Id: I7919fbed3f9a833eafb324a21a4beaa81f2eaa91 Reviewed-on: https://go-review.googlesource.com/c/158077 Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Michael Anthony Knyszek authored
The coalescing process is complex and in a follow-up change we'll need to do it in more than one place, so this change factors out the coalescing code in freeSpanLocked into a method on mheap. Change-Id: Ia266b6cb1157c1b8d3d8a4287b42fbcc032bbf3a Reviewed-on: https://go-review.googlesource.com/c/157838 Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Austin Clements authored
The ABI changes should be completely transparent to Go code, but could cause linking issues in certain situations involving assembly code reaching across package boundaries. If users encounter linking problems, point them to the "Compatibility" section of the ABI design document, which gives some guidance. Change-Id: I4156d164562e2ec0de7ae8f9a3631a32ec45b317 Reviewed-on: https://go-review.googlesource.com/c/158237Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
Updates #29388 Change-Id: Icb0e6048d05fde7a5486b923ff62147edb5c8dac Reviewed-on: https://go-review.googlesource.com/c/157617 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Damien Neil <dneil@google.com>
-
- 16 Jan, 2019 2 commits
-
-
Clément Chigot authored
On aix/ppc64, if the server closes before the client calls Accept, this test will fail. Increasing the time before the server closes should resolve this timeout. Updates #29685 Change-Id: Iebb849d694fc9c37cf216ce1f0b8741249b98016 Reviewed-on: https://go-review.googlesource.com/c/158038Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Baokun Lee authored
Truncate changes the size of the file. It does not change the I/O offset. Fixes #29757 Change-Id: I1aa9223a86d6a8ce3c0efc3ac1d7d7647b77f589 Reviewed-on: https://go-review.googlesource.com/c/158117Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
- 15 Jan, 2019 5 commits
-
-
GuilhermeCaruso authored
Change-Id: Iaabbfe5a4c1bbedd19d4087f1b79e5a38bdd3878 GitHub-Last-Rev: 55c91fc19074dacc66623aa7ff2286b11ccd5340 GitHub-Pull-Request: golang/go#29752 Reviewed-on: https://go-review.googlesource.com/c/157958Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Daniel Martí authored
golang.org/cl/157097 modified this comment, but left a trailing comma. While at it, make the sentence a bit clearer. Change-Id: I376dda4fd18ddbcae4485dd660a79b9f66ad6da4 Reviewed-on: https://go-review.googlesource.com/c/158037Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
Fixes #29748 Change-Id: I2b19165bdb3c99df5b79574390b5d5f6d40462dc Reviewed-on: https://go-review.googlesource.com/c/157961 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Viacheslav Poturaev authored
Fixes #29628 Change-Id: I95dabed797ef7a1a770b6f4219840f653306af7e GitHub-Last-Rev: 9275dd8f1c6a0cfa16ae882fcfc100991f8338f7 GitHub-Pull-Request: golang/go#29630 Reviewed-on: https://go-review.googlesource.com/c/157097 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Alex Brainman authored
Recent CL 156398 extended TestNTNamespaceSymlink. But new code fails, if user running the test does not have sufficient privilege to create file symlink. Skip part of TestNTNamespaceSymlink, if user cannot create symlink. Fixes #29745 Change-Id: Ie4176429ba9dd98553ce9e91fd19851cc7353f42 Reviewed-on: https://go-review.googlesource.com/c/157917 Run-TryBot: Alex Brainman <alex.brainman@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
-
- 14 Jan, 2019 5 commits
-
-
Keith Randall authored
Reuse the strict mechanism from FileLine for FuncForPC, so we don't crash when asking the pcln table about bad pcs. Fixes #29735 Change-Id: Iaffb32498b8586ecf4eae03823e8aecef841aa68 Reviewed-on: https://go-review.googlesource.com/c/157799Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Dmitri Shuralyov authored
The sortac command is no longer needed as of CL 157238, and can be deleted. Its functionality has been directly integrated into the new x/build/cmd/updatecontrib command. A previous version of updatecontrib was the only user of sortac. Updates #12042 Change-Id: If7442ebee11d05d095ff875a37eed3973c0fd9ca Reviewed-on: https://go-review.googlesource.com/c/157257Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
Normally this happens when combining a sign extension and a load. We want the resulting combo-instruction to get the line number of the load, not the line number of the sign extension. For each rule, compute where we should get its line number by finding a value on the match side that can fault. Use that line number for all the new values created on the right-hand side. Fixes #27201 Change-Id: I19b3c6f468fff1a3c0bfbce2d6581828557064a3 Reviewed-on: https://go-review.googlesource.com/c/156937Reviewed-by: David Chase <drchase@google.com>
-
Daniel Theophanes authored
The logic for pulling a database connection from the DB pool should proceed as follows: attempt to pull either a cached connection or new connection N times in a loop. If each connection results in a bad connection, then create a new connection (no cache). Previously pulling a Conn from the pool, the last step also looked at the cache, rather then always creating a new connection. Fixes #29684 Change-Id: I8f436fd9b96eb35502a620ebe8da4ab89fb06a2e Reviewed-on: https://go-review.googlesource.com/c/157637Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David du Colombier authored
CL 157638 updated TestLookupGmailTXT. However, this test is failing on Plan 9, because the DNS resolver (ndb/dns) only returns a single TXT record. Updates #29722. Change-Id: I01cd94e6167902361c3f5d615868f6f763a31fb1 Reviewed-on: https://go-review.googlesource.com/c/157737 Run-TryBot: David du Colombier <0intro@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 12 Jan, 2019 1 commit
-
-
Ian Lance Taylor authored
Fixes #29698 Change-Id: I0531c0a274b120af8871aa2f5975744ff6c912a3 Reviewed-on: https://go-review.googlesource.com/c/157638 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 11 Jan, 2019 2 commits
-
-
Sebastiaan van Stijn authored
This patch removes mention of GOCACHE=off from the help/docs. It is no longer supported in Go 1.12, per the release notes. Fixes #29680 Change-Id: I53ab15a62743f2e55ae1d8aa50629b1bf1ae32ad GitHub-Last-Rev: 31e904f51dece13645696a87b1164d86c984457f GitHub-Pull-Request: golang/go#29681 Reviewed-on: https://go-review.googlesource.com/c/157517 Run-TryBot: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
Austin Clements authored
Currently, obj.Ctxt's symbol table does not distinguish between ABI0 and ABIInternal symbols. This is *almost* okay, since a given symbol name in the final object file is only going to belong to one ABI or the other, but it requires that the compiler mark a Sym as being a function symbol before it retrieves its LSym. If it retrieves the LSym first, that LSym will be created as ABI0, and later marking the Sym as a function symbol won't change the LSym's ABI. Marking a Sym as a function symbol before looking up its LSym sounds easy, except Syms have a dual purpose: they are used just as interned strings (every function, variable, parameter, etc with the same textual name shares a Sym), and *also* to store state for whatever package global has that name. As a result, it's easy to slip up and look up an LSym when a Sym is serving as the name of a local variable, and then later mark it as a function when it's serving as the global with the name. In general, we were careful to avoid this, but #29610 demonstrates one case where we messed up. Because of on-demand importing from indexed export data, it's possible to compile a method wrapper for a type imported from another package before importing an init function from that package. If the argument of the method is named "init", the "init" LSym will be created as a data symbol when compiling the wrapper, before it gets marked as a function symbol. To fix this, we separate obj.Ctxt's symbol tables for ABI0 and ABIInternal symbols. This way, the compiler will simply get a different LSym once the Sym takes on its package-global meaning as a function. This fixes the above ordering issue, and means we no longer need to go out of our way to create the "init" function early and mark it as a function symbol. Fixes #29610. Updates #27539. Change-Id: Id9458b40017893d46ef9e4a3f9b47fc49e1ce8df Reviewed-on: https://go-review.googlesource.com/c/157017 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
- 10 Jan, 2019 5 commits
-
-
Ian Lance Taylor authored
Worth mentioning because the results are not bit-for-bit identical. This causes a test failure in github.com/fogleman/gg. Updates #6794 Change-Id: I701f34927731fb5c658a1be271c04388e5e7e3f7 Reviewed-on: https://go-review.googlesource.com/c/157417Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Anthony Knyszek authored
This change makes mTreap's iterator type, treapIter, bidirectional instead of unidirectional. This change helps support moving the find operation on a treap to return an iterator instead of a treapNode, in order to hide the details of the treap when accessing elements. For #28479. Change-Id: I5dbea4fd4fb9bede6e81bfd089f2368886f98943 Reviewed-on: https://go-review.googlesource.com/c/156918Reviewed-by: Austin Clements <austin@google.com> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Alex Brainman authored
CL 155597 attempted to fix #29372. But it failed to make all new test cases pass. Also CL 155597 broke some existing code (see #29449 for details). Make small adjustment to CL 155597 that fixes both #29372 and #29449. Suggested by Ian. Updates #29372 Fixes #29449 Change-Id: I9777a615514d3f152af5acb65fb1239e696607b6 Reviewed-on: https://go-review.googlesource.com/c/156398 Run-TryBot: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
On AIX, we don't need to be aware of any change on the protocol stack of Linux kernel. Change-Id: Ib8b14fa930acddb3bc720d401271e8daf567b784 Reviewed-on: https://go-review.googlesource.com/c/157298 Run-TryBot: Mikio Hara <mikioh.public.networking@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
To confirm this change with the go commaned, please run 'go doc net' instead of 'go doc -all net'; the -all option surpresses BUG sections. Change-Id: Iac7bc85fbef48e91d5ede16da0ce4a7ab8cae539 Reviewed-on: https://go-review.googlesource.com/c/157297 Run-TryBot: Mikio Hara <mikioh.public.networking@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 09 Jan, 2019 10 commits
-
-
Clément Chigot authored
This commit allows to cross-compiling aix/ppc64. The nosplit limit must twice as large as on others platforms because of AIX syscalls. The stack limit, especially stackGuardMultiplier, was set by cmd/dist during the bootstrap and doesn't depend on GOOS/GOARCH target. Fixes #29572 Change-Id: Id51e38885e1978d981aa9e14972eaec17294322e Reviewed-on: https://go-review.googlesource.com/c/157117 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Ian Lance Taylor authored
Fixes #29633 Updates #27619 Change-Id: I1e38569ea2a02423b028331f2ed987d3ae47fd2e Reviewed-on: https://go-review.googlesource.com/c/157099Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David du Colombier authored
TestScript/get_unicode, TestScript/get_dotfiles and TestScript/get_brace are failing on Plan 9 since they expect a full-featured git command, while the git tool has been emulated as a simple rc script on Plan 9. This change skips tests using Git on Plan 9. Fixes #29640. Change-Id: Id7f6fdca552167f4631fe401f63167e5653daafa Reviewed-on: https://go-review.googlesource.com/c/157119 Run-TryBot: David du Colombier <0intro@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Cherry Zhang authored
On Wasm, PC is not the instruction counter but the block ID. We advance the PC only when necessary. In the case of sigpanic (used in nil check), the panic stack trace expects the PC at the call of sigpanic, not the next one. However, runtime.Caller subtracts 1 from the PC. To make both PC and PC-1 work (have the same line number), we advance the PC by 2 at sigpanic. Fixes #29632. Change-Id: Ieb4d0bb9dc6a8103855a194e3d289f1db4bfb1e5 Reviewed-on: https://go-review.googlesource.com/c/157157Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Richard Musiol <neelance@gmail.com> Run-TryBot: Richard Musiol <neelance@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Robert Griesemer authored
The argument context string is only used in error messages. Don't format the function AST into a string for every single argument of every single call that is type-checked. Instead do it once per call (still not great, but much much better). Performance optimization. Change-Id: Iec87f9ad34128d7b3eee58577ad37dbaa8e6db44 Reviewed-on: https://go-review.googlesource.com/c/157037 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
Fixes #29627 Change-Id: I08a5b45151a11b5a4f3b5a2d984c0322cf904697 Reviewed-on: https://go-review.googlesource.com/c/157098 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Tobias Klauser authored
Change-Id: Iea33fe64403ca2e6f87a4e070af5e97d96506e41 Reviewed-on: https://go-review.googlesource.com/c/157118Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
LE Manh Cuong authored
Change-Id: I2bba13064c8d21ded41499c6ec225ef83d1a533e Reviewed-on: https://go-review.googlesource.com/c/156997Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Tobias Klauser authored
Follow the convertion (https://golang.org/s/generatedcode) for generated code in fastlog2table.go Change-Id: Ib40ae2848924d98afaf8d4fcaf180a4583edc3fe Reviewed-on: https://go-review.googlesource.com/c/156817 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Yuval Pavel Zholkover authored
The kqueue based netpoller always registers file descriptors with EVFILT_READ and EVFILT_WRITE. However only EVFILT_READ notification is supported for regular files. On FreeBSD a regular file is always reported as ready for writing, resulting in a busy wait. On Darwin, Dragonfly, NetBSD and OpenBSD, a regular file is reported as ready for both reading and writing only once. Updates #19093 Change-Id: If284341f60c6c2332fb5499637d4cfa7a4e26b7b Reviewed-on: https://go-review.googlesource.com/c/156379 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 08 Jan, 2019 4 commits
-
-
Brad Fitzpatrick authored
Fixes #29387 Change-Id: I2d9981f63ac16630ed39d6da6692c81396f4e9ea Reviewed-on: https://go-review.googlesource.com/c/155930Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Ian Lance Taylor authored
Updates #24331 Change-Id: I2d7c996bbe29d5b3922588e199a106eb722c02e6 Reviewed-on: https://go-review.googlesource.com/c/156839Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
Returning the innermost frame instead of the outermost makes code that walks the results of runtime.Caller{,s} still work correctly in the presence of mid-stack inlining. Fixes #29582 Change-Id: I2392e3dd5636eb8c6f58620a61cef2194fe660a7 Reviewed-on: https://go-review.googlesource.com/c/156364 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Alberto Donizetti authored
It was recently updated (again) to version 2018i. Since we're here, wrap the paragraph at ~70 columns, like all the others. Change-Id: I0a380385f34f1df1258a9f2af447234967422f37 Reviewed-on: https://go-review.googlesource.com/c/156857Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-