]> Cypherpunks repositories - gostls13.git/commit
[dev.link] cmd/link: parallelize asmb on amd64
authorJeremy Faller <jeremy@golang.org>
Tue, 17 Mar 2020 14:24:40 +0000 (10:24 -0400)
committerJeremy Faller <jeremy@golang.org>
Mon, 30 Mar 2020 21:05:36 +0000 (21:05 +0000)
commitc46632a2e0c61786900c2c324989aa90e8821aea
treedfaa66e5ee0f77ed80e895205c70f6db2fe48cea
parent84111acd35a33eb02508e2b014f612e9862c480b
[dev.link] cmd/link: parallelize asmb on amd64

Introduces a parallel OutBuf implementation, and POC on amd64. Due to
some of the weird behaviors I saw on MacOS (SIGBUS while calling msync),
I will wait for feedback to port to other architectures.

On my mac, sped up Asmb by ~78% for cmd/compile (below). Will likely
have an appreciable speedup on kubelet benchmark.

Asmb                      39.1ms ±11%     8.5ms ±10%     -78.17%  (p=0.000 n=10+9)
TotalTime                  596ms ± 2%     577ms ± 8%      -3.07%  (p=0.034 n=8+10)

Change-Id: Id2a2577c3f4da155d8dccc862897f43b941877ac
Reviewed-on: https://go-review.googlesource.com/c/go/+/223742
Run-TryBot: Jeremy Faller <jeremy@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
src/cmd/link/internal/amd64/asm.go
src/cmd/link/internal/ld/data.go
src/cmd/link/internal/ld/lib.go
src/cmd/link/internal/ld/link.go
src/cmd/link/internal/ld/outbuf.go
src/cmd/link/internal/ld/outbuf_mmap.go
src/cmd/link/internal/ld/outbuf_windows.go
src/cmd/link/internal/ld/sym.go
src/cmd/link/internal/x86/asm.go