Wenyu Zhao

Results 29 issues of Wenyu Zhao

This PR adds a lock-free block queue and uses it for Immix's clean block allocation (as `BlockPageResource`) and recyclable block allocation (as a reusable block queue). The lock-free block queue...

Fix ImmixSpace's `is_live` and `get_forwarded_object` for https://github.com/mmtk/mmtk-openjdk/pull/141 . --- The context of this PR: OpenJDK has several object cache (or storage) that should be processed during GC. For example, `CodeCache`...

https://github.com/mmtk/mmtk-core/blob/master/src/plan/barriers.rs#L22 Should `BarrierSelector` be decorated with `#[repr(u8)]` to safely convert to unique `u8` values?

C-bug
C-enhancement

https://github.com/mmtk/mmtk-core/blob/533d19f7a8b59978ad6c92f2c46e12881ded8083/src/util/statistics/stats.rs#L14 When the log buffer overflow happens, instead of simply presenting a warning, we should either panic directly or log extra message to break the plotty parser.

F-good-first-issue
P-normal

Add documentation on how to setup and use sanity GC for debugging.

A-doc
P-normal

Currently, MMTk will always use zeroed memory for allocation. However, OpenJDK internally will do another round of zeroing, which is redundant. We need to either disable OpenJDK internal zeroing or...

P-high
C-feature
A-space
F-good-first-issue

We need a work stealing implementation (like the one Java MMTk has) to improve load balancing for the work-packets system.

C-enhancement
G-performance
A-work-queue
F-project
P-normal

Looks like at the moment, we use `VMLocalMarkBitSpec` to define per-object mark metadata, and it only allows one bit of metadata for each object. This prevents from the implementation of...

P-normal

We only have one worker group hard-coded in the work packet scheduler. However, there are three use cases for the multiple worker groups generalization: 1. LXR requires another worker group...

C-enhancement
A-general
P-normal

At the end of `Work::do_work`, the stat counter code will get the type of current work packet, map it to a local buffer, and push the current work packet execution...

G-performance
P-normal