RFR: 8305896: Alternative full GC forwarding [v35]

Roman Kennke rkennke at openjdk.org
Mon May 8 12:51:11 UTC 2023


On Mon, 8 May 2023 12:43:10 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:

> > it can forward objects from one region to a maximum of two regions
> 
> Those two regions must be adjacent, right? Something like: `_biased_bases[1][from_reg_idx] - _biased_bases[0][from_reg_idx] == _region_size_words`.
> 
> If that's the case, I don't understand why the to-address is broken into two parts `[offset][alternate region select]`. Is it possible to double the size of the to-region so that "a maximum of two regions" becomes a single, large to-region? (I think this means `_biased_bases` can be shrunk to a 1D array.)

No, the target regions don't have to be adjacent. Parallel full GCs divide up the work across worker threads, assigning from-regions to each worker, and each worker would then claim to-regions as they go and work with that. To-regions of different workers can interleave and are often not adjacent.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/13582#issuecomment-1538302131


More information about the shenandoah-dev mailing list