Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign upx/crypto/chacha20poly1305: linux/arm64 Go 1.9 performance is 3X slower than OpenSSL #22809
Comments
williamweixiao
referenced this issue
Nov 19, 2017
Closed
crypto/tls: linux/arm64 Go 1.8 performance is slow, max 12.5 MB/sec #19840
titanous
added
help wanted
NeedsFix
Performance
labels
Nov 21, 2017
titanous
added this to the Unplanned milestone
Nov 21, 2017
dmitshur
changed the title
crypto/chacha20poly1305: linux/arm64 Go 1.9 performance is 3X slower than OpenSSL
x/crypto/chacha20poly1305: linux/arm64 Go 1.9 performance is 3X slower than OpenSSL
Mar 20, 2018
This comment has been minimized.
This comment has been minimized.
gopherbot
commented
Apr 9, 2018
|
Change https://golang.org/cl/105895 mentions this issue: |
This comment has been minimized.
This comment has been minimized.
gopherbot
commented
Apr 9, 2018
|
Change https://golang.org/cl/105896 mentions this issue: |
This comment has been minimized.
This comment has been minimized.
gopherbot
commented
Apr 19, 2018
|
Change https://golang.org/cl/107628 mentions this issue: |
This comment has been minimized.
This comment has been minimized.
vielmetti
commented
Jun 26, 2018
|
Substantial perf improvements on Cavium ThunderX going from go 1.10.2 to go1.11beta1, but not 3x faster.
|
This comment has been minimized.
This comment has been minimized.
|
@vielmetti internal/chacha20 won't be merged into go1.11 since it's frozen. |
This comment has been minimized.
This comment has been minimized.
vielmetti
commented
Jun 29, 2018
|
Thanks @mengzhuo . Can we get this onto the go1.12 roster then? It's currently marked as "Unplanned". |
ianlancetaylor
modified the milestones:
Unplanned,
Go1.12
Jun 29, 2018
This comment has been minimized.
This comment has been minimized.
|
I changed the milestone, but note that that doesn't cause the work to be done. This is an open source project so the best way to get something done is to volunteer to do it. Thanks. |
This comment has been minimized.
This comment has been minimized.
vielmetti
commented
Jun 29, 2018
|
Noted at https://go-review.googlesource.com/c/crypto/+/107628 "If you prioritize arm64 chacha and arm64 poly, it will see production use super soon after." It appears from comments on that patch that the coding work has largely been done but there are constraints on the availability of reviewers for arm64 assembly. |
This comment has been minimized.
This comment has been minimized.
vielmetti
commented
Aug 23, 2018
|
Who is reviewing arm64 assembly these days, @ianlancetaylor , and can they use qualified help? I'm happy to help recruit qualified reviewers from the arm64 Go community if I know the qualifications. |
This comment has been minimized.
This comment has been minimized.
|
At present arm64 assembly is typically reviewed by the tireless @cherrymui . I'm sure @benshi001 would also have good input. |
This comment has been minimized.
This comment has been minimized.
|
@FiloSottile This was marked for 1.12. Things still on target for that? |
This comment has been minimized.
This comment has been minimized.
vielmetti
commented
Feb 5, 2019
|
This issue is marked currently as "help wanted". What is the nature of the help desired? |
This comment has been minimized.
This comment has been minimized.
|
@vielmetti Figuring out how to make the code run faster. One of the meanings of the "help wanted" label is "we would like this to happen but nobody is working on it." |
This comment has been minimized.
This comment has been minimized.
Pretty sure somebody was working on it, but then CL just didn't get much of a review. Until today, that is. |
This comment has been minimized.
This comment has been minimized.
|
@zx2c4 The "help wanted" label was added before any of the CLs were sent. But I should have been clearer in my response; my apologies. |
williamweixiao commentedNov 19, 2017
Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (
go version)?go version go1.9.2 linux/arm64
Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (
go env)?GOARCH="arm64"
GOBIN=""
GOEXE=""
GOHOSTARCH="arm64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go-1.6"
GOTOOLDIR="/usr/lib/go-1.6/pkg/tool/linux_arm64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
What did you do?
go test vendor/golang_org/x/crypto/chacha20poly1305 -bench .
What did you expect to see?
Performance can be on par with OpenSSL (https://blog.cloudflare.com/content/images/2017/11/sym_key_1_core.png)
What did you see instead?
3X slower than OpenSSL( https://blog.cloudflare.com/content/images/2017/11/go_sym_key_1_core.png)