Integrated: 8330414: GenShen: Class unloading requires old regions be made parseable
William Kemper
wkemper at openjdk.org
Tue Apr 23 20:22:14 UTC 2024
On Fri, 19 Apr 2024 00:00:42 GMT, William Kemper <wkemper at openjdk.org> wrote:
> Even when the generational mode is using the mark bitmap to scan the remembered set's card tables, the card table offsets may refer to unmarked objects. If the classes referred to by these unmarked objects have been reloaded in metaspace, the class pointer may no longer be valid or may refer to a class with a different size than expected by the parser. This may cause the remembered set scan to miss oops that should be included in the root set.
>
> GenShen will attempt to make these old regions parseable after mixed evacuations have completed, but only if no GCs have been requested. When GenShen is under memory pressure and running back-to-back GCs, it may not make these old regions parseable before the remembered set is scanned again. This change adds an uninterruptible phase to make old regions parseable when a global cycle has unloaded classes.
This pull request has now been integrated.
Changeset: 6d095910
Author: William Kemper <wkemper at openjdk.org>
URL: https://git.openjdk.org/shenandoah/commit/6d09591099fa78a98a1f963987637138089f702e
Stats: 339 lines in 19 files changed: 222 ins; 58 del; 59 mod
8330414: GenShen: Class unloading requires old regions be made parseable
Reviewed-by: kdnilsen
-------------
PR: https://git.openjdk.org/shenandoah/pull/424
More information about the shenandoah-dev
mailing list