-
Notifications
You must be signed in to change notification settings - Fork 17.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
runtime/pprof: TestStackBarrierProfiling too short on freebsd too #13846
Comments
FreeBSD has been failing a lot on the dashboard. I thought it had okay timer support, but I'll dig in to it. |
FreeBSD is even worse in some ways. Like other Unixes it can only fire SIGPROF for the process running as of the system tick, but it also only accounts for elapsed itimer time as of the system tick. That is, if a whole bunch of processes run during a quantum, each yielding to the next; the one running at the end of the quantum will be attributed the whole time slice and none of the other processes will record any time elapsed. (This is all based on FreeBSD 10.) usleep doesn't seem as obviously broken as on some platforms (it doesn't seem to unconditionally give up the whole time slice), but it's definitely not very precise. I'm still figuring out what usleep does. |
usleep also gives up the rest of the time slice on FreeBSD, and maybe two time slices. A usleep(100) loop sleeps for a mean of 2ms with little variance. The test doesn't fail as often on FreeBSD because the default time slice is only 1ms (according to |
CL https://golang.org/cl/18455 mentions this issue. |
Should freebsd also be skipped? (part of #13841)
http://build.golang.org/log/a50792aa07a14b6644148e160b9858ff07a5e12f
The text was updated successfully, but these errors were encountered: