RFR: 8310031: Parallel: Implement better work distribution for large object arrays in old gen [v7]
Richard Reingruber
rrich at openjdk.org
Mon Sep 18 16:57:41 UTC 2023
On Mon, 18 Sep 2023 14:51:02 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:
> > I would like to keep this as simple as possible
>
> Totally agree; what I suggested above doesn't require remset-related change (at least not as far I can envision).
Likely I misunderstood you, sorry. I though you were suggesting a solution to avoid the last regression. I agree that if the card table is only read during scavenge this would reduce complexity. Basically you need a 2nd card table to collect the dirty marks, don't you?
> > ... all cards of a large array on the current stripe following a dirty card are considered dirty too.
>
> Wouldn't that negate the purpose of precise-dirty-card for obj-array, i.e. skipping scanning mem corresponding to clean cards?
At most, only the elements on the current stripe are scanned when a dirty card is encountered, while all elements are scanned with the baseline. So the precise card marks are actually used with the proposed patch. In the worst case (only the first card of each stripe is dirty) this does not help though. This scheme is better than the baseline and avoids the regression when clean/dirty cards alternate.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/14846#issuecomment-1723966585
More information about the hotspot-gc-dev
mailing list