mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 14:24:46 +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
|
@ -2322,6 +2322,7 @@ void PSParallelCompact::marking_phase(ParCompactionManager* cm,
|
|||
|
||||
{
|
||||
TraceTime tm_m("par mark", print_phases(), true, gclog_or_tty);
|
||||
ParallelScavengeHeap::ParStrongRootsScope psrs;
|
||||
|
||||
GCTaskQueue* q = GCTaskQueue::create();
|
||||
|
||||
|
@ -2335,6 +2336,7 @@ void PSParallelCompact::marking_phase(ParCompactionManager* cm,
|
|||
q->enqueue(new MarkFromRootsTask(MarkFromRootsTask::system_dictionary));
|
||||
q->enqueue(new MarkFromRootsTask(MarkFromRootsTask::jvmti));
|
||||
q->enqueue(new MarkFromRootsTask(MarkFromRootsTask::vm_symbols));
|
||||
q->enqueue(new MarkFromRootsTask(MarkFromRootsTask::code_cache));
|
||||
|
||||
if (parallel_gc_threads > 1) {
|
||||
for (uint j = 0; j < parallel_gc_threads; j++) {
|
||||
|
@ -2405,7 +2407,7 @@ void PSParallelCompact::adjust_roots() {
|
|||
Universe::oops_do(adjust_root_pointer_closure());
|
||||
ReferenceProcessor::oops_do(adjust_root_pointer_closure());
|
||||
JNIHandles::oops_do(adjust_root_pointer_closure()); // Global (strong) JNI handles
|
||||
Threads::oops_do(adjust_root_pointer_closure());
|
||||
Threads::oops_do(adjust_root_pointer_closure(), NULL);
|
||||
ObjectSynchronizer::oops_do(adjust_root_pointer_closure());
|
||||
FlatProfiler::oops_do(adjust_root_pointer_closure());
|
||||
Management::oops_do(adjust_root_pointer_closure());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue