go icon indicating copy to clipboard operation
go copied to clipboard

runtime: remove VZEROUPPER patch once Darwin <10.15.6 is not supported

Open cuonglm opened this issue 5 years ago • 9 comments

Split out from https://github.com/golang/go/issues/37174#issuecomment-683899466

So once we stop supporting releases <10.15.6, we can get rid of the VZEROUPPER patch.

cc @randall77 @dmitshur

cuonglm avatar Sep 01 '20 02:09 cuonglm

Apple has been making a new major macOS version each year, and Go has been dropping support for old macOS versions at the same rate. So we can estimate.

Go 1.11 started to require macOS 10.10 or later. Go 1.13 started to require macOS 10.11 or later. Go 1.15 started to require macOS 10.12 or later. If that rate doesn't change, Go 1.23 will start to require macOS 10.16 (aka macOS 11.0) or later, and this optimization can be applied then.

dmitshur avatar Sep 01 '20 22:09 dmitshur

Potentially this issue was reintroduced (elsewhere?) in macOS 10.15.7 (19H15?): https://twitter.com/Cyan4973/status/1327023284974538754

HenkPoley avatar Nov 13 '20 07:11 HenkPoley

For future self, make sure the reproducers in #37174 perform ok before removing the VZEROUPPER.

randall77 avatar Dec 04 '20 22:12 randall77

Just upgraded to 10.15.7 and it looks still fixed to me. (The C/asm reproducer runs at the same speed regardless of whether the vzeroupper is commented out or not.)

randall77 avatar Dec 25 '20 23:12 randall77

According to https://golang.org/doc/go1.16, Go 1.17 will still support macOS 10.13. So should this be deferred to Go 1.18 (or Go 1.23, per @dmitshur)?

mdempsky avatar Apr 29 '21 21:04 mdempsky

I understand this isn't so critical that we need to re-evaluate and bump every 6 months, so I'll put this in a future Go 1.23 milestone. If something changes before then, we can revisit this.

dmitshur avatar Apr 29 '21 21:04 dmitshur

This issue is currently labeled as early-in-cycle for Go 1.23. That time is now, so a friendly reminder to look at it again.

gopherbot avatar Jan 22 '24 16:01 gopherbot

Change https://go.dev/cl/560955 mentions this issue: runtime: remove VZEROUPPER in asyncPreempt on darwin/amd64

gopherbot avatar Feb 03 '24 03:02 gopherbot

I could not find a Mac Intel for testing https://go-review.googlesource.com/c/go/+/560955, any help on verifying the CL is welcome.

cc @golang/darwin

cuonglm avatar Feb 20 '24 08:02 cuonglm