Code review - Issue 46170044: code review 46170044: runtime: use lock-free ring for work queueshttps://codereview.appspot.com/2014-01-16T08:17:14+00:00rietveld
Message from unknown
2013-12-28T10:42:09+00:00dvyukovurn:md5:1ccf1e39db3eb3c52b326563ffac9b1f
Message from unknown
2013-12-28T10:42:12+00:00dvyukovurn:md5:1718da0c67fa05cc73ec7401c683b090
Message from unknown
2013-12-28T12:55:03+00:00dvyukovurn:md5:230db9121ffd2ea068b5e22edc1ca971
Message from unknown
2013-12-28T13:05:47+00:00dvyukovurn:md5:4d713829f3556b0efd054d8faabb9509
Message from unknown
2013-12-31T14:16:35+00:00dvyukovurn:md5:c531b069eaeb1afae37db772b95e001d
Message from unknown
2013-12-31T15:00:15+00:00dvyukovurn:md5:0142cf75be0f808be56cd4479a111138
Message from unknown
2014-01-01T08:52:20+00:00dvyukovurn:md5:2f7c60e8ce09938b140a0456585a1e4d
Message from unknown
2014-01-01T09:05:49+00:00dvyukovurn:md5:792c4e8b727e61eadfbdb0b5e860bf7a
Message from dvyukov@google.com
2014-01-01T09:05:54+00:00dvyukovurn:md5:ec603f1ea539392753dabee3727546a7
Hello golang-codereviews@googlegroups.com (cc: ddetlefs@google.com, devon.odell@gmail.com),
I'd like you to review this change to
https://dvyukov%40google.com@code.google.com/p/go/
Message from rsc@golang.org
2014-01-09T21:44:56+00:00rscurn:md5:a21a2289e5f6f2d8817ef2c7d6e6992d
LGTM
Message from unknown
2014-01-16T08:16:55+00:00dvyukovurn:md5:11648fb0aafffea0adcad8ea6cf83c54
Message from dvyukov@google.com
2014-01-16T08:17:14+00:00dvyukovurn:md5:4b666150852a13e637766e67c9741677
*** Submitted as https://code.google.com/p/go/source/detail?r=209c0d648d9c ***
runtime: use lock-free ring for work queues
Use lock-free fixed-size ring for work queues
instead of an unbounded mutex-protected array.
The ring has single producer and multiple consumers.
If the ring overflows, work is put onto global queue.
benchmark old ns/op new ns/op delta
BenchmarkMatmult 7 5 -18.12%
BenchmarkMatmult-4 2 2 -18.98%
BenchmarkMatmult-16 1 0 -12.84%
BenchmarkCreateGoroutines 105 88 -16.10%
BenchmarkCreateGoroutines-4 376 219 -41.76%
BenchmarkCreateGoroutines-16 241 174 -27.80%
BenchmarkCreateGoroutinesParallel 103 87 -14.66%
BenchmarkCreateGoroutinesParallel-4 169 143 -15.38%
BenchmarkCreateGoroutinesParallel-16 158 151 -4.43%
R=golang-codereviews, rsc
CC=ddetlefs, devon.odell, golang-codereviews
https://codereview.appspot.com/46170044