- 20 Nov, 2019 6 commits
-
-
Austin Clements authored
This implements preemptM on Windows using SuspendThead and ResumeThread. Unlike on POSIX platforms, preemptM on Windows happens synchronously. This means we need a make a few other tweaks to suspendG: 1. We need to CAS the G back to _Grunning before doing the preemptM, or there's a good chance we'll just catch the G spinning on its status in the runtime, which won't be preemptible. 2. We need to rate-limit preemptM attempts. Otherwise, if the first attempt catches the G at a non-preemptible point, the busy loop in suspendG may hammer it so hard that it never makes it past that non-preemptible point. Updates #10958, #24543. Change-Id: Ie53b098811096f7e45d864afd292dc9e999ce226 Reviewed-on: https://go-review.googlesource.com/c/go/+/204340 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Austin Clements authored
On Windows, there is currently a race between unminit closing the thread's handle and profileloop1 suspending the thread using its handle. If another handle reuses the same handle value, this can lead to unpredictable results. To fix this, we protect the thread handle with a lock and duplicate it under this lock in profileloop1 before using it. This is going to become a much bigger problem with non-cooperative preemption (#10958, #24543), which uses the same basic mechanism as profileloop1. Change-Id: I9d62b83051df8c03f3363344438e37781a69ce16 Reviewed-on: https://go-review.googlesource.com/c/go/+/207779 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
-
Austin Clements authored
This field is only used on Windows. Change-Id: I12d4df09261f8e7ad54c2abd7beda669af28c8e7 Reviewed-on: https://go-review.googlesource.com/c/go/+/207778 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
-
Clément Chigot authored
Since the new page allocator, AIX's GDB has trouble running Go programs. It does work but it can be really slow. Therefore, they are disable when tests are run with -short. Updates: #35710 Change-Id: Ibfc4bd2cd9714268f1fe172aaf32a73612e262d6 Reviewed-on: https://go-review.googlesource.com/c/go/+/207919 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Katie Hockman authored
Change-Id: Ia65bac00fe8600f50620ce0583455eb33f06ff95 Reviewed-on: https://go-review.googlesource.com/c/go/+/207918 Run-TryBot: Katie Hockman <katie@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Filippo Valsorda <filippo@golang.org>
-
Baokun Lee authored
Fixes #35703 Change-Id: I476efad38897cae93f298af86784bbc2cc2449a3 Reviewed-on: https://go-review.googlesource.com/c/go/+/208037 Run-TryBot: Baokun Lee <nototon@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
- 19 Nov, 2019 21 commits
-
-
Jay Conrod authored
Updates #33637 Change-Id: Ieb8fce1b9c44f630cddc5ff6d19daa17185867e1 Reviewed-on: https://go-review.googlesource.com/c/go/+/206618 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tyler Bui-Palsulich <tbp@google.com>
-
Jay Conrod authored
Updates #33637 Change-Id: I3a0d05551d5a680febf742b912a5a6e5af753a6e Reviewed-on: https://go-review.googlesource.com/c/go/+/206617 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tyler Bui-Palsulich <tbp@google.com>
-
Bryan C. Mills authored
In CL 207962, I removed a seemingly-redundant -i flag. As it turns out, the -i flag has *two* meanings: “install dependencies”, and “do not actually run the test”. Without the flag, we omit the former behavior, but add the latter. We're about to run specific tests from these binaries on the very next line, so don't preemptively run all of the tests. Updates #30316 Change-Id: Ie3d8a37dc5f6bd98c232b308b0a6a165b5d82f7c Reviewed-on: https://go-review.googlesource.com/c/go/+/207966 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Bryan C. Mills authored
TestInstalls was already mostly redundant with TestInstallInto{GOPATH,GOBIN}, except for one additional check for the install location of cmd/fix. We can't assume that GOROOT is writable in general, so we also can't assume that the test will be able to reinstall cmd/fix at run time. Moreover, other processes running in parallel may expect to invoke cmd/fix themselves, so this test temporarily removing it could induce systemwide flakes. We could carefully construct a parallel GOROOT and install cmd/fix into it, but we can get *almost* as much coverage — at a much lower cost — by checking the output of 'go list' instead of actually rebuilding and reinstalling the binary. Updates #28387 Updates #30316 Change-Id: Id49f44a68b0c52dfabb84c665f63c4e7db58dd49 Reviewed-on: https://go-review.googlesource.com/c/go/+/207965 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Than McIntosh authored
Update gccgoPkgpathToSymbolNew() to bring it into conformance with the way that gccgo now handles packagepaths with embedded dots (see CL 200838). See also https://gcc.gnu.org/PR61880, a related bug. Updates #35623. Change-Id: I32f064320b9af387fc17771530c745a9e3003c20 Reviewed-on: https://go-review.googlesource.com/c/go/+/207957 Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Jay Conrod authored
These terms will be defined throughout the document, and more terms will be added. After drafting a few sections, it's clear that a glossary will be useful. There are enough terms that it would be overwhelming at the beginning. Also, add anchors for each heading and add a couple more headings. Updates #33637 Change-Id: I0017064f0b1e5e656dd280018ca0379484345df1 Reviewed-on: https://go-review.googlesource.com/c/go/+/206478 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com> Reviewed-by: Tyler Bui-Palsulich <tbp@google.com>
-
Bryan C. Mills authored
The whole point of copying these files is so that we can modify them. Updates #30316 Change-Id: Iaba7ddec5159078f2c3d3451cbab363365b15c9d Reviewed-on: https://go-review.googlesource.com/c/go/+/207963 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Bryan C. Mills authored
At one point (before GOCACHE), the '-i' flag meant, effectively, “save the intermediate results of this command to make future commands faster”. However, now that we require GOCACHE to be enabled everywhere, '-i' no longer has that meaning: the intermediate results are already saved in GOCACHE, so the -i flag merely adds extra work (copying or linking things from GOCACHE into pkg), and also adds additional failure modes resulting from that extra work (particularly when 'pkg' is read-only). Since the flag now causes more harm than good, omit it. Updates #30316 Change-Id: I295b6c0fc460dfc11ffa2a964cbb2a40f2935edc Reviewed-on: https://go-review.googlesource.com/c/go/+/207962 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
Change-Id: I71fc3016106db733b888f3daccc00b493abe39b2 Reviewed-on: https://go-review.googlesource.com/c/go/+/207840Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Bryan C. Mills authored
Updates #28387 Updates #30316 Change-Id: I31e04c89f2cc226f9b5110f14c8b80a18e937efb Reviewed-on: https://go-review.googlesource.com/c/go/+/207960 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Bryan C. Mills authored
This test runs 'go test -race -i runtime/race' and checks that it did not overwrite cmd/cgo. If GOROOT/pkg is read-only and GOROOT/pkg/$GOOS_$GOARCH_race is not already populated, as are the conditions if the Go toolchain was installed from source as root using 'make.bash', then 'go test -race -i' itself will fail because it cannot install packages to GOROOT/pkg. However, such a failure is not relevant to the test: even if 'go test -race -i' fails, we can still verify that it did not incidentally overwrite cmd/cgo. Updates #28387 Updates #30316 Change-Id: Iff2f75a0aeb4c926290ac3062c83695604522078 Reviewed-on: https://go-review.googlesource.com/c/go/+/207959 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Bryan C. Mills authored
Updates #28387 Updates #30316 Change-Id: I48c6dd8619ea9602e9617ce11dfa05f1c70a485d Reviewed-on: https://go-review.googlesource.com/c/go/+/207958Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Ian Lance Taylor authored
The darwin-arm64-correlium builder was failing the test consistently at the old values. Give the ticks more time to let the test pass. Updates #35692 Change-Id: Ibc636cd4db2595c82f4e8c6c822c3df4c2b7e0a1 Reviewed-on: https://go-review.googlesource.com/c/go/+/207839 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
Updates #6239 Updates #27707 Change-Id: I65e6471829c9de4677d3ac78ef6cd7aa0a1fc4cb Reviewed-on: https://go-review.googlesource.com/c/go/+/171884Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Michael Knyszek <mknyszek@google.com> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
-
Joel Sing authored
Handle immediates larger than 12-bits by rewriting as an LUI instruction with the high bits, followed by the original instruction with the low bits. Based on the riscv-go port. Updates #27532 Change-Id: I8ed6d6e6db06fb8a27f3ab75f467ec2b7ff1f075 Reviewed-on: https://go-review.googlesource.com/c/go/+/204626Reviewed-by: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Joel Sing authored
Based on the riscv-go port. Updates #27532 Change-Id: I478254306441c253d3a2c09c10932ad1ac0be3c6 Reviewed-on: https://go-review.googlesource.com/c/go/+/204625Reviewed-by: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
Dan Scales pointed out a theoretical deadlock in the runtime. The timer code runs timer functions while holding the timers lock for a P. The scavenger queues up a timer function that calls wakeScavenger, which acquires the scavenger lock. The scavengeSleep function acquires the scavenger lock, then calls resetTimer which can call addInitializedTimer which acquires the timers lock for the current P. So there is a potential deadlock, in that the scavenger lock and the timers lock for some P may both be acquired in different order. It's not clear to me whether this deadlock can ever actually occur. Issue 35532 describes another possible deadlock. The pollSetDeadline function acquires pd.lock for some poll descriptor, and in some cases calls resettimer which can in some cases acquire the timers lock for the current P. The timer code runs timer functions while holding the timers lock for a P. The timer function for poll descriptors winds up in netpolldeadlineimpl which acquires pd.lock. So again there is a potential deadlock, in that the pd lock for some poll descriptor and the timers lock for some P may both be acquired in different order. I think this can happen if we change the deadline for a network connection exactly as the former deadline expires. Looking at the code, I don't see any reason why we have to hold the timers lock while running a timer function. This CL implements that change. Updates #6239 Updates #27707 Fixes #35532 Change-Id: I17792f5a0120e01ea07cf1b2de8434d5c10704dd Reviewed-on: https://go-review.googlesource.com/c/go/+/207348 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Michael Knyszek <mknyszek@google.com>
-
Ian Lance Taylor authored
Take the opportunity of deflaking to make it take less time to run. Updates #35537 Change-Id: I91ca8094fbe18fbfcd34dfda98da1592c9c82943 Reviewed-on: https://go-review.googlesource.com/c/go/+/207403 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Bryan C. Mills authored
This will help to detect regressions of #28387 when running 'go test cmd/go' in a writable GOROOT. Updates #28387 Updates #30316 Change-Id: I551e044111535404688b1a76e63163dfcb41bb5c Reviewed-on: https://go-review.googlesource.com/c/go/+/207701 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Jay Conrod <jayconrod@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Chase authored
The old recipe for making an infinite loop not be infinite in the debugger could create an instruction (Prog) with a line number not tied to any file (index == 0). This caused downstream failures in DWARF processing. So don't do that. Also adds a test, also adds a check+panic to ensure that the next time this happens the error is less mystifying. Fixes #35652 Change-Id: I04f30bc94fdc4aef20dd9130561303ff84fd945e Reviewed-on: https://go-review.googlesource.com/c/go/+/207613 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Bryan C. Mills authored
It was attempting to write a test binary to the working directory. Updates #28387 Updates #30316 Change-Id: I82eca3a8a3e019dc6dacbe1f02a0583577694b93 Reviewed-on: https://go-review.googlesource.com/c/go/+/207614 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 18 Nov, 2019 13 commits
-
-
Bryan C. Mills authored
Updates #28387 Updates #30316 Change-Id: I06e50c8d148cb4d7e08cdc2ba90de5e91d35781d Reviewed-on: https://go-review.googlesource.com/c/go/+/207699 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Bryan C. Mills authored
Updates #28387 Updates #30316 Change-Id: If2e66176e2c92a469cbab20e60f4439b0d8668bb Reviewed-on: https://go-review.googlesource.com/c/go/+/207700 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Bryan C. Mills authored
Updates #28387 Updates #30316 Change-Id: I08eb0e144387735f7a7811a82e547a581991b335 Reviewed-on: https://go-review.googlesource.com/c/go/+/207697 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Bryan C. Mills authored
Also convert associated tests of GOPATH and 'go install' so that we can remove the corresponding source file from testdata/src. Updates #28387 Updates #30316 Change-Id: Id8c2fde4dc88954b29aefe71c9fa7e974a2ca932 Reviewed-on: https://go-review.googlesource.com/c/go/+/207605 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Bryan C. Mills authored
Updates #28387 Updates #30316 Change-Id: I6192cc02b9e4fce3015cc47da9ec63fbea79a935 Reviewed-on: https://go-review.googlesource.com/c/go/+/207698 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Than McIntosh authored
Reduced test case for gollvm compiler crash building docker-ce. Updates #35586. Change-Id: Ib805dc9ab7b63cc61f207f1f000bef9809cfd428 Reviewed-on: https://go-review.googlesource.com/c/go/+/207258 Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Bryan C. Mills authored
Updates #28387 Updates #30316 Change-Id: I5a1a7870928083a98a76225c428ad4d7263fd832 Reviewed-on: https://go-review.googlesource.com/c/go/+/207610 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Bryan C. Mills authored
I'm hoping to eliminate testdata/src/go-cmd-test, so porting over tests that assume its existence. Updates #28387 Updates #30316 Change-Id: I20bae780a4eb87cc19cc1e8531b84ab4a8a3c255 Reviewed-on: https://go-review.googlesource.com/c/go/+/207608 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Bryan C. Mills authored
These tests were all attempting to write to their working directory, which may fail if GOROOT is read-only. Updates #28387 Updates #30316 Change-Id: Ib85234cdcf5ef4d554d8c99cf0942981bbd394ee Reviewed-on: https://go-review.googlesource.com/c/go/+/207604 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
-
Cherry Zhang authored
When initializing an M, we set up its signal stack to the gsignal stack if an alternate signal stack is not already set. On Android, an alternate signal stack is always set, even cgo is not used. This breaks the logic of saving/fetching G on the signal stack during VDSO, which assumes the signal stack is allocated by Go if cgo is not used (if cgo is used, we use TLS for saving G). When cgo is not used, we can always use the Go signal stack, even if an alternate signal stack is already set. Since cgo is not used, no one other than the Go runtime will care. Fixes #35554. Change-Id: Ia9d84cd55cb35097f3df46f37996589c86f10e0f Reviewed-on: https://go-review.googlesource.com/c/go/+/207445 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
ramenjuniti authored
tabs.getSelected has been deprecated since Chrome 33. Instead, use tabs.query. Fixes #35663 Change-Id: I4f7f17f948987aff8409ac8210f04eb1f7ebf908 Reviewed-on: https://go-review.googlesource.com/c/go/+/207402Reviewed-by: Andrew Bonventre <andybons@golang.org>
-
Bryan C. Mills authored
Fixes #35632 Change-Id: I55c3d53c2a6240868ec001866047a15ec8f91809 Reviewed-on: https://go-review.googlesource.com/c/go/+/207603 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Bryan C. Mills authored
This reverts CL 207477, restoring CL 207352 with a fix for the regression observed in the Windows builders. cmd/compile evidently does not fully support NUL as an output on Windows, so this time we write ignored 'compile' outputs to temporary files (instead of os.DevNull as in CL 207352). Updates #28387 Fixes #35619 Change-Id: I2edc5727c3738fa1bccb4b74e50d114cf2a7fcff Reviewed-on: https://go-review.googlesource.com/c/go/+/207602 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-