libriscv
libriscv copied to clipboard
Go HTTP client stuck on epoll_pwait
It panics in a strange place:
https://gist.github.com/fwsGonzo/01399b308fda7d9afc1e4d5bec1891ac
I have no current theory on what the problem could be. I looked over the fine print in the atomics section of the unprivileged spec and I couldn't see anything that I did obviously wrong. I also implemented page-crossing slowpath memory reads/writes and saw no difference.
It no longer panics but seems to get stuck calling epoll_pwait repeatedly. I can see the Go code, and I have inspected the inputs and outputs of the epoll wait. Nothing looks wrong. Could it be a bug in atomic operations? Go uses a lot of them in that path.