Yi Lin
Yi Lin
This PR adds a function to our API `find_object_from_internal_pointer`. It uses a simple implementation with `is_vo_bit_set_for_addr` which is not efficient. An efficient implementation should be able to bulk load side...
For allocators that have its allocation buffer, it seems unnecesary to set VO bit atomically. https://github.com/mmtk/mmtk-core/blob/3be73b8048df17f1f2bd019d0b109488a2c5e313/src/policy/immix/immixspace.rs#L139-L142 https://github.com/mmtk/mmtk-core/blob/3be73b8048df17f1f2bd019d0b109488a2c5e313/src/util/metadata/vo_bit/mod.rs#L64-L71
This PR fixes https://github.com/mmtk/mmtk-core/issues/1140.
```console The following artifacts were uploaded using a version of actions/upload-artifact that is scheduled for deprecation: "linux-x86_64-avrora-fastdebug", "linux-x86_64-avrora-release", "linux-x86_64-batik-fastdebug", "linux-x86_64-batik-release", "linux-x86_64-biojava-fastdebug", "linux-x86_64-biojava-release", "linux-x86_64-cassandra-fastdebug", "linux-x86_64-cassandra-release", "linux-x86_64-eclipse-fastdebug", "linux-x86_64-eclipse-release", "linux-x86_64-fop-fastdebug", "linux-x86_64-graphchi-fastdebug", "linux-x86_64-h2-fastdebug", "linux-x86_64-h2o-release",...
https://github.com/mmtk/mmtk-core/pull/1174 introduced an API that allows heap traversal. The API will enumerate objects based on the VO bit at the time of enumeration. So if there is GC or allocation...
For https://github.com/mmtk/mmtk-core/pull/1165, the return value for `memory_manager::is_mmtk_object` is changed. However, in the run https://github.com/mmtk/mmtk-core/actions/runs/9899721290/job/27349183033, the change for `is_mmtk_object` is not listed. ```console cargo public-api diff origin/${GITHUB_BASE_REF}..1bb2d14ef68b9fb5a81f6a6ca7b941f3f22c6fe8 --deny=all ... Removed items...
When we allocate a new block or sweep a block, the free list for the block points to the last cell. https://github.com/mmtk/mmtk-core/blob/6cae51c40104d84bb74598ab3eba4f9ef8173e8e/src/util/alloc/free_list_allocator.rs#L360 https://github.com/mmtk/mmtk-core/blob/6cae51c40104d84bb74598ab3eba4f9ef8173e8e/src/policy/marksweepspace/native_ms/block.rs#L305 E.g. for a block starting at `0x10000`...
@wenyuzhao observed that if we enable defrag for every GC for Immix, we see performance improvement. It would be good if @wenyuzhao can share more info on the results and...
We currently use `SideMetadata::find_prev_non_zero_value` to find the base reference for an internal reference. The implementation of `SideMetadata::find_prev_non_zero_value` is fully general for all kinds of side metadata, and does not use...