Closed kayceesrk closed 9 years ago
With queue_test under move-based promotion multicore GC scheme [1], the program regularly suffers from livelocks. Here is a run:
queue_test
$ time ./queue_test.byte 8 100000 items_per_domain = 12500 [7] production complete [6] production complete [2] production complete [6] consumed=6523 [5] production complete [1] production complete [3] production complete [4] production complete [0] production complete [1] consumed=3188 [3] consumed=7997 [7] consumed=43648 [2] consumed=20255 [0] consumed=188 [4] consumed=5824 [5] consumed=12377 FunQ: mean = 2.656480, sd = 0.000000 tp=37643.799313 real 1m10.501s user 0m2.557s sys 0m0.114s
Although the program took more than a minute to complete, the user time is just 2.5s. I suspect a problem with backoff mechanism in Backoff or kCAS.
[1] https://github.com/kayceesrk/ocaml-multicore/tree/nodup
Fixed. See https://github.com/kayceesrk/ocaml-multicore/commit/c2e245c21549e18f0c57d3cad5d05f4e187ec60c.
With
queue_test
under move-based promotion multicore GC scheme [1], the program regularly suffers from livelocks. Here is a run:Although the program took more than a minute to complete, the user time is just 2.5s. I suspect a problem with backoff mechanism in Backoff or kCAS.
[1] https://github.com/kayceesrk/ocaml-multicore/tree/nodup