Skip to content

runtime: tests have gotten slower #48770

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
josharian opened this issue Oct 4, 2021 · 8 comments
Closed

runtime: tests have gotten slower #48770

josharian opened this issue Oct 4, 2021 · 8 comments
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Testing An issue that has been verified to require only test changes, not just a test failure.
Milestone

Comments

@josharian
Copy link
Contributor

I've noticed running all.bash recently that the runtime tests are really slow and CPU intensive.

On my M1, I tried doing cd $GOROOT/runtime; go test -c; ./runtime.test -test.short with recent Go versions. The runtime tests now take almost 3x longer than 1.17.

  • Go 1.16: 6.46 real 7.76 user 2.52 sys
  • Go 1.17: 7.39 real 8.40 user 2.48 sys
  • Tip, Oct 4 '21 (9432320): 20.03 real 25.64 user 6.26 sys

The slowest at tip are:

0.50s TestCgoCrashHandler
0.58s TestCgoExternalThreadSignal
0.67s TestCgoSignalDeadlock
0.71s TestCheckPtr2
0.72s TestCgoExternalThreadSIGPROF
0.77s TestEINTR
1.00s TestCheckPtr/CheckPtrAlignmentNilPtr
1.00s TestDeferKeepAlive
1.01s TestSpuriousWakeupsNeverHangSemasleep
1.13s TestVDSO
1.38s TestCgoCCodeSIGPROF

Perhaps some of these could be shortened, skipped, or marked parallel?

@mknyszek mknyszek added NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Testing An issue that has been verified to require only test changes, not just a test failure. labels Oct 4, 2021
@mknyszek mknyszek added this to the Go1.18 milestone Oct 4, 2021
@cuonglm
Copy link
Member

cuonglm commented Oct 4, 2021

Maybe related #48496

@josharian
Copy link
Contributor Author

Ouch. Yes, quite possibly!

@mknyszek
Copy link
Contributor

@josharian #48496 seems to have been resolved. Is this any better?

@josharian
Copy link
Contributor Author

It is marginally better, but still much slower than previous releases.

  • 1.17: 7.58 real 9.83 user 2.84 sys
  • tip (f659183): 18.80 real 26.15 user 7.19 sys

Also, tip now contains log spam:

step 1
step 8
step 9
step 10
step 11
step 12
step 13
step 14
PASS

@josharian
Copy link
Contributor Author

Mailed CL 364555 for the log spam.

@gopherbot
Copy link
Contributor

Change https://golang.org/cl/366256 mentions this issue: runtime: execute TestSpuriousWakeupsNeverHangSemasleep in parallel

gopherbot pushed a commit that referenced this issue Nov 22, 2021
This test spends most of its time sleeping and waiting on a subprocess
to sleep. It seems like a prime candidate to run in parallel, although
we may need to relax its hard-coded 2s timeout on the sleep(1)
subprocess.

For #48770

Change-Id: I4e839739fe82446615f9894c1904c87e5f3cf386
Reviewed-on: https://go-review.googlesource.com/c/go/+/366256
Trust: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
@odeke-em
Copy link
Member

odeke-em commented Dec 9, 2021

How are we doing here @josharian?

@josharian
Copy link
Contributor Author

Looks fixed.

@golang golang locked and limited conversation to collaborators Dec 9, 2022
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Testing An issue that has been verified to require only test changes, not just a test failure.
Projects
None yet
Development

No branches or pull requests

5 participants