equal
deleted
inserted
replaced
29 #include "gc/z/zDriver.hpp" |
29 #include "gc/z/zDriver.hpp" |
30 #include "gc/z/zHeap.inline.hpp" |
30 #include "gc/z/zHeap.inline.hpp" |
31 #include "gc/z/zMessagePort.inline.hpp" |
31 #include "gc/z/zMessagePort.inline.hpp" |
32 #include "gc/z/zServiceability.hpp" |
32 #include "gc/z/zServiceability.hpp" |
33 #include "gc/z/zStat.hpp" |
33 #include "gc/z/zStat.hpp" |
|
34 #include "gc/z/zVerify.hpp" |
34 #include "logging/log.hpp" |
35 #include "logging/log.hpp" |
35 #include "memory/universe.hpp" |
36 #include "memory/universe.hpp" |
36 #include "runtime/vmOperations.hpp" |
37 #include "runtime/vmOperations.hpp" |
37 #include "runtime/vmThread.hpp" |
38 #include "runtime/vmThread.hpp" |
38 |
39 |
83 } |
84 } |
84 |
85 |
85 // Setup GC id and active marker |
86 // Setup GC id and active marker |
86 GCIdMark gc_id_mark(_gc_id); |
87 GCIdMark gc_id_mark(_gc_id); |
87 IsGCActiveMark gc_active_mark; |
88 IsGCActiveMark gc_active_mark; |
|
89 |
|
90 // Verify roots |
|
91 ZVerify::roots_strong(); |
88 |
92 |
89 // Execute operation |
93 // Execute operation |
90 _success = do_operation(); |
94 _success = do_operation(); |
91 |
95 |
92 // Update statistics |
96 // Update statistics |
299 ZHeap::heap()->reset_relocation_set(); |
303 ZHeap::heap()->reset_relocation_set(); |
300 } |
304 } |
301 |
305 |
302 void ZDriver::pause_verify() { |
306 void ZDriver::pause_verify() { |
303 if (VerifyBeforeGC || VerifyDuringGC || VerifyAfterGC) { |
307 if (VerifyBeforeGC || VerifyDuringGC || VerifyAfterGC) { |
|
308 // Full verification |
304 VM_Verify op; |
309 VM_Verify op; |
|
310 VMThread::execute(&op); |
|
311 |
|
312 } else if (ZVerifyRoots || ZVerifyObjects) { |
|
313 // Limited verification |
|
314 VM_ZVerifyOperation op; |
305 VMThread::execute(&op); |
315 VMThread::execute(&op); |
306 } |
316 } |
307 } |
317 } |
308 |
318 |
309 void ZDriver::concurrent_select_relocation_set() { |
319 void ZDriver::concurrent_select_relocation_set() { |