equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 2015, 2018, Red Hat, Inc. All rights reserved. |
2 * Copyright (c) 2015, 2019, Red Hat, Inc. All rights reserved. |
3 * |
3 * |
4 * This code is free software; you can redistribute it and/or modify it |
4 * This code is free software; you can redistribute it and/or modify it |
5 * under the terms of the GNU General Public License version 2 only, as |
5 * under the terms of the GNU General Public License version 2 only, as |
6 * published by the Free Software Foundation. |
6 * published by the Free Software Foundation. |
7 * |
7 * |
28 #include "gc/shared/oopStorageParState.hpp" |
28 #include "gc/shared/oopStorageParState.hpp" |
29 #include "gc/shenandoah/shenandoahCodeRoots.hpp" |
29 #include "gc/shenandoah/shenandoahCodeRoots.hpp" |
30 #include "gc/shenandoah/shenandoahHeap.hpp" |
30 #include "gc/shenandoah/shenandoahHeap.hpp" |
31 #include "gc/shenandoah/shenandoahPhaseTimings.hpp" |
31 #include "gc/shenandoah/shenandoahPhaseTimings.hpp" |
32 #include "gc/shared/strongRootsScope.hpp" |
32 #include "gc/shared/strongRootsScope.hpp" |
|
33 #include "gc/shared/weakProcessor.hpp" |
33 #include "gc/shared/workgroup.hpp" |
34 #include "gc/shared/workgroup.hpp" |
34 #include "memory/allocation.hpp" |
35 #include "memory/allocation.hpp" |
35 #include "memory/iterator.hpp" |
36 #include "memory/iterator.hpp" |
36 |
37 |
37 class ParallelCLDRootIterator { |
38 class ParallelCLDRootIterator { |
41 }; |
42 }; |
42 |
43 |
43 enum Shenandoah_process_roots_tasks { |
44 enum Shenandoah_process_roots_tasks { |
44 SHENANDOAH_RP_PS_Universe_oops_do, |
45 SHENANDOAH_RP_PS_Universe_oops_do, |
45 SHENANDOAH_RP_PS_JNIHandles_oops_do, |
46 SHENANDOAH_RP_PS_JNIHandles_oops_do, |
46 SHENANDOAH_RP_PS_JNIHandles_weak_oops_do, |
|
47 SHENANDOAH_RP_PS_ObjectSynchronizer_oops_do, |
47 SHENANDOAH_RP_PS_ObjectSynchronizer_oops_do, |
48 SHENANDOAH_RP_PS_Management_oops_do, |
48 SHENANDOAH_RP_PS_Management_oops_do, |
49 SHENANDOAH_RP_PS_SystemDictionary_oops_do, |
49 SHENANDOAH_RP_PS_SystemDictionary_oops_do, |
50 SHENANDOAH_RP_PS_jvmti_oops_do, |
50 SHENANDOAH_RP_PS_jvmti_oops_do, |
51 // Leave this one last. |
51 // Leave this one last. |
58 OopStorage::ParState<false, false> _par_state_string; |
58 OopStorage::ParState<false, false> _par_state_string; |
59 ShenandoahPhaseTimings::Phase _phase; |
59 ShenandoahPhaseTimings::Phase _phase; |
60 ParallelCLDRootIterator _cld_iterator; |
60 ParallelCLDRootIterator _cld_iterator; |
61 ShenandoahAllCodeRootsIterator _coderoots_all_iterator; |
61 ShenandoahAllCodeRootsIterator _coderoots_all_iterator; |
62 CodeBlobClosure* _threads_nmethods_cl; |
62 CodeBlobClosure* _threads_nmethods_cl; |
|
63 WeakProcessor::Task _weak_processor_task; |
63 |
64 |
64 void process_java_roots(OopClosure* scan_non_heap_roots, |
65 void process_java_roots(OopClosure* scan_non_heap_roots, |
65 CLDClosure* scan_strong_clds, |
66 CLDClosure* scan_strong_clds, |
66 CLDClosure* scan_weak_clds, |
67 CLDClosure* scan_weak_clds, |
67 CodeBlobClosure* scan_strong_code, |
68 CodeBlobClosure* scan_strong_code, |