comparison src/share/vm/gc_implementation/g1/vm_operations_g1.cpp @ 6062:1096fc5a52eb

7168294: G1: Some Full GCs incorrectly report GC cause as "No GC" Summary: GC cause was not being set by the VM_G1CollectForAllocation VM operation. Reviewed-by: jmasa, ysr, brutisso
author johnc
date Tue, 15 May 2012 09:49:18 -0700
parents 5c86f8211d1e
children 37552638d24a
comparison
equal deleted inserted replaced
6061:33e366609904 6062:1096fc5a52eb
40 guarantee(word_size > 0, "an allocation should always be requested"); 40 guarantee(word_size > 0, "an allocation should always be requested");
41 } 41 }
42 42
43 void VM_G1CollectForAllocation::doit() { 43 void VM_G1CollectForAllocation::doit() {
44 G1CollectedHeap* g1h = G1CollectedHeap::heap(); 44 G1CollectedHeap* g1h = G1CollectedHeap::heap();
45 GCCauseSetter x(g1h, _gc_cause);
45 _result = g1h->satisfy_failed_allocation(_word_size, &_pause_succeeded); 46 _result = g1h->satisfy_failed_allocation(_word_size, &_pause_succeeded);
46 assert(_result == NULL || _pause_succeeded, 47 assert(_result == NULL || _pause_succeeded,
47 "if we get back a result, the pause should have succeeded"); 48 "if we get back a result, the pause should have succeeded");
48 } 49 }
49 50