`gc_prof_mark_timer_start` and `gc_prof_mark_timer_stop` include DTrace hooks for the `MARK_BEGIN` and `MARK_END` events, respectively. Previously, those probes are only triggered in `gc_marks`. However, `gc_marks_continue` and `gc_rest...wks (Kunshan Wang)
luke-gru (Luke Gruber) wrote in #note-5: > ... some others said they've seen problematic mark functions in some extensions (reading/mutating global state, etc.) ... jhawthorn (John Hawthorn) wrote in #note-6: > ... Yes. That's exac...wks (Kunshan Wang)
If I read correctly, this proposal is about improving the performance of sweeping by running `obj_free` of TypedData concurrently with mutators. But I think this does not change a fact that the TypedData is still subject to finalization...wks (Kunshan Wang)
When `rb_concurrent_set_foreach_with_replace` deletes entries from a concurrent set, it should increment the `deleted_entries` field, too.wks (Kunshan Wang)
Some GC modules, notably MMTk, support parallel GC, i.e. multiple GC threads work in parallel during a GC. Currently, when two GC threads scan two iseq objects simultaneously when YJIT is enabled, both threads will attempt to borrow `Co...wks (Kunshan Wang)
This is the second part of making YJIT work with parallel GC. During GC, `rb_yjit_iseq_mark` and `rb_yjit_iseq_update_references` need to resolve offsets in `Block::gc_obj_offsets` into absolute addresses before reading or updating the ...wks (Kunshan Wang)