39 #include "utilities/macros.hpp" |
39 #include "utilities/macros.hpp" |
40 #if INCLUDE_ALL_GCS |
40 #if INCLUDE_ALL_GCS |
41 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" |
41 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" |
42 #endif // INCLUDE_ALL_GCS |
42 #endif // INCLUDE_ALL_GCS |
43 |
43 |
44 #ifndef USDT2 |
|
45 HS_DTRACE_PROBE_DECL1(hotspot, gc__begin, bool); |
|
46 HS_DTRACE_PROBE_DECL(hotspot, gc__end); |
|
47 #endif /* !USDT2 */ |
|
48 |
|
49 // The same dtrace probe can't be inserted in two different files, so we |
44 // The same dtrace probe can't be inserted in two different files, so we |
50 // have to call it here, so it's only in one file. Can't create new probes |
45 // have to call it here, so it's only in one file. Can't create new probes |
51 // for the other file anymore. The dtrace probes have to remain stable. |
46 // for the other file anymore. The dtrace probes have to remain stable. |
52 void VM_GC_Operation::notify_gc_begin(bool full) { |
47 void VM_GC_Operation::notify_gc_begin(bool full) { |
53 #ifndef USDT2 |
|
54 HS_DTRACE_PROBE1(hotspot, gc__begin, full); |
|
55 HS_DTRACE_WORKAROUND_TAIL_CALL_BUG(); |
|
56 #else /* USDT2 */ |
|
57 HOTSPOT_GC_BEGIN( |
48 HOTSPOT_GC_BEGIN( |
58 full); |
49 full); |
59 HS_DTRACE_WORKAROUND_TAIL_CALL_BUG(); |
50 HS_DTRACE_WORKAROUND_TAIL_CALL_BUG(); |
60 #endif /* USDT2 */ |
|
61 } |
51 } |
62 |
52 |
63 void VM_GC_Operation::notify_gc_end() { |
53 void VM_GC_Operation::notify_gc_end() { |
64 #ifndef USDT2 |
|
65 HS_DTRACE_PROBE(hotspot, gc__end); |
|
66 HS_DTRACE_WORKAROUND_TAIL_CALL_BUG(); |
|
67 #else /* USDT2 */ |
|
68 HOTSPOT_GC_END(); |
54 HOTSPOT_GC_END(); |
69 HS_DTRACE_WORKAROUND_TAIL_CALL_BUG(); |
55 HS_DTRACE_WORKAROUND_TAIL_CALL_BUG(); |
70 #endif /* USDT2 */ |
|
71 } |
56 } |
72 |
57 |
73 void VM_GC_Operation::acquire_pending_list_lock() { |
58 void VM_GC_Operation::acquire_pending_list_lock() { |
74 // we may enter this with pending exception set |
59 // we may enter this with pending exception set |
75 InstanceRefKlass::acquire_pending_list_lock(&_pending_list_basic_lock); |
60 InstanceRefKlass::acquire_pending_list_lock(&_pending_list_basic_lock); |