Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/vm_operations_g1.cpp @ 23472:047a642c9729
8065579: WB method to start G1 concurrent mark cycle should be introduced
Summary: Add a WhiteBox callback to the VM to start a concurrent mark cycle in G1.
Reviewed-by: tschatzl, sjohanss
Contributed-by: Leonid Mesnik <leonid.mesnik@oracle.com>
author | kevinw |
---|---|
date | Wed, 02 Dec 2015 13:58:34 +0530 |
parents | af8f16ac392c |
children |
comparison
equal
deleted
inserted
replaced
23471:70649f10b88c | 23472:047a642c9729 |
---|---|
88 return res; | 88 return res; |
89 } | 89 } |
90 | 90 |
91 void VM_G1IncCollectionPause::doit() { | 91 void VM_G1IncCollectionPause::doit() { |
92 G1CollectedHeap* g1h = G1CollectedHeap::heap(); | 92 G1CollectedHeap* g1h = G1CollectedHeap::heap(); |
93 assert(!_should_initiate_conc_mark || | 93 assert(!_should_initiate_conc_mark || g1h->should_do_concurrent_full_gc(_gc_cause), |
94 ((_gc_cause == GCCause::_gc_locker && GCLockerInvokesConcurrent) || | 94 "only a GC locker, a System.gc(), stats update, whitebox, or a hum allocation induced GC should start a cycle"); |
95 (_gc_cause == GCCause::_java_lang_system_gc && ExplicitGCInvokesConcurrent) || | |
96 _gc_cause == GCCause::_g1_humongous_allocation || | |
97 _gc_cause == GCCause::_update_allocation_context_stats_inc), | |
98 "only a GC locker, a System.gc(), stats update or a hum allocation induced GC should start a cycle"); | |
99 | 95 |
100 if (_word_size > 0) { | 96 if (_word_size > 0) { |
101 // An allocation has been requested. So, try to do that first. | 97 // An allocation has been requested. So, try to do that first. |
102 _result = g1h->attempt_allocation_at_safepoint(_word_size, allocation_context(), | 98 _result = g1h->attempt_allocation_at_safepoint(_word_size, allocation_context(), |
103 false /* expect_null_cur_alloc_region */); | 99 false /* expect_null_cur_alloc_region */); |