On Fri, Jun 14, 2013 at 3:33 PM, wrote:
As a side-note: this caused a severe performance regression on an old,
unsupported, release of FreeBSD (7.0 plus security patches), such that
running "go version" would take 60 seconds to complete (or 5 seconds
under ktrace). It appears, from kdump, that the code enters a tight
loop with 441,722 instances of "_umtx_op -1 errno 22 Invalid argument"
in the output, and the same parameters passed every time.
Since the code supporting UMTX_OP_WAIT_UINT went into FreeBSD in 2007 (
http://svnweb.freebsd.org/base?view=revision&revision=173800 ), I
suspect that leaving this change in Go is correct, but perhaps there
could be some better error detection?
Reverting this change resolved the issues for me.
As a side-note: this caused a severe performance regression on an old,
unsupported, release of FreeBSD (7.0 plus security patches), such that
running "go version" would take 60 seconds to complete (or 5 seconds
under ktrace). It appears, from kdump, that the code enters a tight
loop with 441,722 instances of "_umtx_op -1 errno 22 Invalid argument"
in the output, and the same parameters passed every time.
Since the code supporting UMTX_OP_WAIT_UINT went into FreeBSD in 2007 (
http://svnweb.freebsd.org/base?view=revision&revision=173800 ), I
suspect that leaving this change in Go is correct, but perhaps there
could be some better error detection?
Reverting this change resolved the issues for me.
fails. It looks correct to me but I guess it isn't. I don't think we
care about a version of FreeBSD from before 2007, but if you can work
up a patch that detects the error correctly--i.e., crashes--we can
probably commit it.
Ian
--
---
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.