mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
6863023: need non-perm oops in code cache for JSR 292
Make a special root-list for those few nmethods which might contain non-perm oops. Reviewed-by: twisti, kvn, never, jmasa, ysr
This commit is contained in:
parent
1cf5b7ae11
commit
e261aecad8
74 changed files with 979 additions and 279 deletions
|
@ -165,9 +165,21 @@ public:
|
|||
// c) to never return a distinguished value (zero) with which such
|
||||
// task-claiming variables may be initialized, to indicate "never
|
||||
// claimed".
|
||||
private:
|
||||
void change_strong_roots_parity();
|
||||
public:
|
||||
int strong_roots_parity() { return _strong_roots_parity; }
|
||||
|
||||
// Call these in sequential code around process_strong_roots.
|
||||
// strong_roots_prologue calls change_strong_roots_parity, if
|
||||
// parallel tasks are enabled.
|
||||
class StrongRootsScope : public MarkingCodeBlobClosure::MarkScope {
|
||||
public:
|
||||
StrongRootsScope(SharedHeap* outer, bool activate = true);
|
||||
~StrongRootsScope();
|
||||
};
|
||||
friend class StrongRootsScope;
|
||||
|
||||
enum ScanningOption {
|
||||
SO_None = 0x0,
|
||||
SO_AllClasses = 0x1,
|
||||
|
@ -198,15 +210,18 @@ public:
|
|||
// "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 collecting_perm_gen,
|
||||
void process_strong_roots(bool activate_scope,
|
||||
bool collecting_perm_gen,
|
||||
ScanningOption so,
|
||||
OopClosure* roots,
|
||||
CodeBlobClosure* code_roots,
|
||||
OopsInGenClosure* perm_blk);
|
||||
|
||||
// Apply "blk" to all the weak roots of the system. These include
|
||||
// JNI weak roots, the code cache, system dictionary, symbol table,
|
||||
// string table.
|
||||
void process_weak_roots(OopClosure* root_closure,
|
||||
CodeBlobClosure* code_roots,
|
||||
OopClosure* non_root_closure);
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue