KC Sivaramakrishnan
KC Sivaramakrishnan
I've been looking at the macos-arm64 failure. The test failure is on https://github.com/ocaml/ocaml/blob/trunk/testsuite/tests/parallel/major_gc_wait_backup.ml#L41. The test expects new major cycles to have been done after doing some long-lived allocating work. I...
I've narrowed the problem down to https://github.com/NickBarnes/ocaml/blob/d372edbb85b26090914185bd2491b9118e73b740/runtime/major_gc.c#L1987-L1990 ```c /* Finalisers */ if (caml_gc_phase == Phase_mark_final && get_major_slice_work(mode) > 0 && caml_final_update_first(domain_state)) { /* This domain has updated finalise first values...
`caml_final_update_first` and `caml_final_update_last` are not incremental. So checking whether `get_major_slice_work(mode) > 0` is too strict. For a quick fix, I suggest removing the condition. I have tested the fix, and...
@NickBarnes wonder if you've had some cycles to look at this? Would be useful to get this PR across the line.
Thanks for this contribution. I am starting to review this PR. I wondered why `[@atomic]` attribute was necessary at all and why we can't just use `[%atomic.loc ...]` on arbitrary...
> It turns out that, when I said disabling the dmb instruction did not produce any significant change, I had only disabled the load barrier, not the store barrier. With...
Thanks @dustanddreams. It would be useful to see whether the improvement carries across different Arm processors. In particular, across different Apple Silicon processors. Do you have a branch with your...
Thanks for sharing the link. Before we make this available as a compiler option, we will need to be sure that the interactions between C and OCaml memory model interactions,...
> Before we make this available as a compiler option, we will need to be sure that the interactions between C and OCaml memory model interactions, FFI, etc are all...
Is there a precedent for something like this where a configure-time option produces code that shouldn't be mixed with other code? Perhaps @Octachron and @dra27 may know.