Description
For Go 1.14, we worked around a Linux kernel bug that caused vector register corruption on return from the signal handler (#35777, kernel bug).
The workaround is non-trivial and impossible to do 100% correctly from user space. Also, the affected Linux kernel releases are unlikely to be in the wild by the Go 1.15 release. Hence, I propose that we revert CLs 209597 and 209899 for Go 1.15.
The bug was introduced in Linux 5.2, though generally wasn't visible until Linux 5.3 because it also required GCC 9, which Linux 5.2's default configuration was incompatible with. It was fixed in Linux 5.3.15 and 5.4.2, and the fix will appear in all 5.5 and future releases. 5.4 is a long-term support release, and 5.4.2 was released with the fix just 10 days after 5.4, so by Go 1.15, stable distributions will have the patched kernel, and unstable distributions will have long since moved on to more recent kernels.
Activity
ianlancetaylor commentedon Jun 15, 2020
We should have done this before the beta. I'm going to move the milestone to 1.16. Let's try to do this early in the cycle. Please comment if you disagree.
gopherbot commentedon Jul 31, 2020
Change https://golang.org/cl/246200 mentions this issue:
runtime: revert signal stack mlocking
dmitshur commentedon Aug 12, 2020
This issue is currently labeled as early-in-cycle for Go 1.16.
That time is now, so this is a friendly ping so the issue is looked at again.
gopherbot commentedon Sep 1, 2020
Change https://golang.org/cl/251757 mentions this issue:
runtime: remove remnants of signal stack workaround
runtime: remove remnants of signal stack workaround