Request for review (S): 7039089 G1: changeset for 7037276 broke heap verification, and related cleanups
Igor Veresov
igor.veresov at oracle.com
Mon Apr 25 18:38:48 UTC 2011
Looks good.
igor
On 4/23/11 1:49 PM, Y. Srinivas Ramakrishna wrote:
>
> http://cr.openjdk.java.net/~ysr/7039089/webrev.00/
>
> The problem was that G1 was calling process_strong_roots()
> with collecting_perm_gen option set to false, so the
> closure would be used to scan the younger refs in
> the perm gen. However, this was not preceded in this case
> by a save_marks() call, so that if save_marks() had been
> done earlier and the perm gen had been resized subsequently,
> we could end up trying to scan non-existent cards in the
> card table.
>
> Changed options to process_strong_root() so we
> pass "collecting_perm_gen" == true, and
> appropriate class scanning options.
> This also allowed us to get rid of the subsequent
> invalidation of the perm gen cards which would otherwise
> have been cleared by the younger refs iteration code.
>
> Add an assertion in non_clean_cards_iterate_possibly_parallel()
> to catch such an issue and provide a more informative
> message.
>
> I also noticed that some of the obsoleted code related to
> the scanning of oops in the symbol table had not been
> removed when symbols emigrated out of the Java heap. I removed
> that obsolete code and references to it in the documentation/comments.
>
> Allowed VerifyBeforeExit heap verification to be more verbose
> either of PrintGCDetails is enabled or if Verbose is enabled.
>
> Testing: the failing test (LoadUnloadGC2), specjvm with
> heap verification enabled, refworkload with heap verification
> enabled and (ongoing) JPRT with and without heap verification
> enabled.
>
> Thanks for your reviews.
> -- ramki
More information about the hotspot-gc-dev
mailing list