Skip to content

Commit 9f55e7b

Browse files
committed
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 <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> Reviewed-by: Richard Miller <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]>
1 parent eb55b98 commit 9f55e7b

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

src/runtime/os_plan9.go

+5-7
Original file line numberDiff line numberDiff line change
@@ -358,15 +358,13 @@ func crash() {
358358
*(*int)(nil) = 0
359359
}
360360

361+
// Don't read from /dev/random, since this device can only
362+
// return a few hundred bits a second and would slow creation
363+
// of Go processes down significantly.
364+
//
361365
//go:nosplit
362366
func readRandom(r []byte) int {
363-
fd := open(&randomDev[0], _OREAD|_OCEXEC, 0)
364-
if fd < 0 {
365-
fatal("cannot open /dev/random")
366-
}
367-
n := int(read(fd, unsafe.Pointer(&r[0]), int32(len(r))))
368-
closefd(fd)
369-
return n
367+
return 0
370368
}
371369

372370
func initsig(preinit bool) {

0 commit comments

Comments
 (0)