runtime: performance regression due to bad instruction used in morestack_noctxt for ppc64 in CL 425396 #57741
Labels
compiler/runtime
Issues related to the Go compiler and/or runtime.
FrozenDueToAge
NeedsFix
The path to resolution is known, but the work has not been done.
Milestone
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: