Yi Lin

Results 120 issues of 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...

A-interface
A-heap

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...

A-ops

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...

C-enhancement
A-obj-metadata