RFR: 8310031: Parallel: Implement better work distribution for large object arrays in old gen [v3]

Richard Reingruber rrich at openjdk.org
Fri Sep 22 14:46:19 UTC 2023


On Thu, 3 Aug 2023 13:59:35 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

>> Richard Reingruber has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Limit effect of previous commit to large array handling
>
> Another option that is likely more readable is putting the distinction between iterating over a large objArray and regular object into `PSCardTable::scan_objects_in_range` instead of trying to split these two.
> 
> I.e. So that this inner loop looks like g1/serial in `HeapRegion::oops_on_memregion_iterate()`.
> 
> I am not sure where the requirement implemented that the last part of a large objArray must be scanned by the thread working on the second-to-last stripe comes from too.
> 
> The performance sensitive part of this scanning code is typically not finding the dirty cards but actually scanning the corresponding objects and doing the per-reference work.

@tschatzl I will also try to move processing of the start of a large array to `scavenge_large_array_stripe`.

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

PR Comment: https://git.openjdk.org/jdk/pull/14846#issuecomment-1731544567


More information about the hotspot-gc-dev mailing list