-
Notifications
You must be signed in to change notification settings - Fork 17.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
runtime: performance regression due to bad instruction used in morestack_noctxt for ppc64 in CL 425396 #57741
Comments
Interesting. Good finding! |
We can do it. We have been testing it out. |
Change https://go.dev/cl/461597 mentions this issue: |
@cherrymui we want this in Go 1.20, so is there anything special needed on the CL now that the tree is open for 1.21? |
The tree hasn't opened yet. So the CL can be submitted as usual. |
@gopherbot please backport this to previous releases Go1.19 and Go1.18 |
Backport issue(s) opened: #57811 (for 1.18), #57812 (for 1.19). Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://go.dev/wiki/MinorReleases. |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
What did you expect to see?
Consistent performance of runtime benchmarks.
What did you see instead?
Some benchmarks in the runtime package show a 3X or more degradation on power10 after CL 425396 was merged. Removing this line in the latest also removes the degradation. For example, Hash65536 is one example.
The MOVD R1, R1 results in
or r1,r1,r1
which is a special instruction on ppc64 that changes thread priority. This is described in section 3.2 of ISA 3.1.
Changing it to OR $0, R1 has the same effect wrt SPWRITE but does not affect thread priority.
@cherrymui @pmur @archanaravindar
The text was updated successfully, but these errors were encountered: