From: David du Colombier <0intro@gmail.com> Date: Sat, 5 Apr 2025 18:35:12 +0000 (+0200) Subject: runtime: don't read /dev/random on Plan 9 X-Git-Tag: go1.25rc1~401 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=9f55e7bc2180fefd64723ae6e9524a20a098b19a;p=gostls13.git runtime: don't read /dev/random on Plan 9 In CL 656755, the readRandom function was modified to read an integer from /dev/random. However, on Plan 9, /dev/random can only return a few hundred bits a second. The issue is that readRandom is called by randinit, which is called at the creation of Go processes. Consequently, it lead the Go programs to be very slow on Plan 9. This change reverts the change done in CL 656755 to make the readRandom function always returning 0 on Plan 9. Change-Id: Ibe1bf7e4c8cbc82998e4f5e1331f5e29a047c4fc Cq-Include-Trybots: luci.golang.try:gotip-plan9-arm Reviewed-on: https://go-review.googlesource.com/c/go/+/663195 Reviewed-by: Michael Pratt Reviewed-by: Dmitri Shuralyov Reviewed-by: Richard Miller LUCI-TryBot-Result: Go LUCI Reviewed-by: Dmitri Shuralyov --- diff --git a/src/runtime/os_plan9.go b/src/runtime/os_plan9.go index 6ff15c2236..a0ad9060c5 100644 --- a/src/runtime/os_plan9.go +++ b/src/runtime/os_plan9.go @@ -358,15 +358,13 @@ func crash() { *(*int)(nil) = 0 } +// Don't read from /dev/random, since this device can only +// return a few hundred bits a second and would slow creation +// of Go processes down significantly. +// //go:nosplit func readRandom(r []byte) int { - fd := open(&randomDev[0], _OREAD|_OCEXEC, 0) - if fd < 0 { - fatal("cannot open /dev/random") - } - n := int(read(fd, unsafe.Pointer(&r[0]), int32(len(r)))) - closefd(fd) - return n + return 0 } func initsig(preinit bool) {