mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
7039089: G1: changeset for 7037276 broke heap verification, and related cleanups
In G1 heap verification, we no longer scan perm to G1-collected heap refs as part of process_strong_roots() but rather in a separate explicit oop iteration over the perm gen. This preserves the original perm card-marks. Added a new assertion in younger_refs_iterate() to catch a simple subcase where the user may have forgotten a prior save_marks() call, as happened in the case of G1's attempt to iterate perm to G1 refs when verifying the heap before exit. The assert was deliberately weakened for ParNew+CMS and will be fixed for that combination in a future CR. Also made some (non-G1) cleanups related to code and comments obsoleted by the migration of Symbols to the native heap. Reviewed-by: iveresov, jmasa, tonyp
This commit is contained in:
parent
e3121a5a43
commit
d86311b13c
8 changed files with 69 additions and 28 deletions
|
@ -192,9 +192,8 @@ public:
|
|||
SO_None = 0x0,
|
||||
SO_AllClasses = 0x1,
|
||||
SO_SystemClasses = 0x2,
|
||||
SO_Symbols = 0x4,
|
||||
SO_Strings = 0x8,
|
||||
SO_CodeCache = 0x10
|
||||
SO_Strings = 0x4,
|
||||
SO_CodeCache = 0x8
|
||||
};
|
||||
|
||||
FlexibleWorkGang* workers() const { return _workers; }
|
||||
|
@ -208,14 +207,13 @@ public:
|
|||
|
||||
// Invoke the "do_oop" method the closure "roots" on all root locations.
|
||||
// If "collecting_perm_gen" is false, then roots that may only contain
|
||||
// references to permGen objects are not scanned. If true, the
|
||||
// "perm_gen" closure is applied to all older-to-younger refs in the
|
||||
// references to permGen objects are not scanned; instead, in that case,
|
||||
// the "perm_blk" closure is applied to all outgoing refs in the
|
||||
// permanent generation. The "so" argument determines which of roots
|
||||
// the closure is applied to:
|
||||
// "SO_None" does none;
|
||||
// "SO_AllClasses" applies the closure to all entries in the SystemDictionary;
|
||||
// "SO_SystemClasses" to all the "system" classes and loaders;
|
||||
// "SO_Symbols" applies the closure to all entries in SymbolsTable;
|
||||
// "SO_Strings" applies the closure to all entries in StringTable;
|
||||
// "SO_CodeCache" applies the closure to all elements of the CodeCache.
|
||||
void process_strong_roots(bool activate_scope,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue