mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
Merge
This commit is contained in:
commit
120ca47539
3 changed files with 11 additions and 10 deletions
|
@ -981,7 +981,8 @@ HeapWord* G1CollectedHeap::attempt_allocation_slow(size_t word_size,
|
||||||
|
|
||||||
if (should_try_gc) {
|
if (should_try_gc) {
|
||||||
bool succeeded;
|
bool succeeded;
|
||||||
result = do_collection_pause(word_size, gc_count_before, &succeeded);
|
result = do_collection_pause(word_size, gc_count_before, &succeeded,
|
||||||
|
GCCause::_g1_inc_collection_pause);
|
||||||
if (result != NULL) {
|
if (result != NULL) {
|
||||||
assert(succeeded, "only way to get back a non-NULL result");
|
assert(succeeded, "only way to get back a non-NULL result");
|
||||||
return result;
|
return result;
|
||||||
|
@ -1106,7 +1107,8 @@ HeapWord* G1CollectedHeap::attempt_allocation_humongous(size_t word_size,
|
||||||
// enough space for the allocation to succeed after the pause.
|
// enough space for the allocation to succeed after the pause.
|
||||||
|
|
||||||
bool succeeded;
|
bool succeeded;
|
||||||
result = do_collection_pause(word_size, gc_count_before, &succeeded);
|
result = do_collection_pause(word_size, gc_count_before, &succeeded,
|
||||||
|
GCCause::_g1_humongous_allocation);
|
||||||
if (result != NULL) {
|
if (result != NULL) {
|
||||||
assert(succeeded, "only way to get back a non-NULL result");
|
assert(succeeded, "only way to get back a non-NULL result");
|
||||||
return result;
|
return result;
|
||||||
|
@ -3700,14 +3702,15 @@ void G1CollectedHeap::gc_epilogue(bool full /* Ignored */) {
|
||||||
|
|
||||||
HeapWord* G1CollectedHeap::do_collection_pause(size_t word_size,
|
HeapWord* G1CollectedHeap::do_collection_pause(size_t word_size,
|
||||||
unsigned int gc_count_before,
|
unsigned int gc_count_before,
|
||||||
bool* succeeded) {
|
bool* succeeded,
|
||||||
|
GCCause::Cause gc_cause) {
|
||||||
assert_heap_not_locked_and_not_at_safepoint();
|
assert_heap_not_locked_and_not_at_safepoint();
|
||||||
g1_policy()->record_stop_world_start();
|
g1_policy()->record_stop_world_start();
|
||||||
VM_G1IncCollectionPause op(gc_count_before,
|
VM_G1IncCollectionPause op(gc_count_before,
|
||||||
word_size,
|
word_size,
|
||||||
false, /* should_initiate_conc_mark */
|
false, /* should_initiate_conc_mark */
|
||||||
g1_policy()->max_pause_time_ms(),
|
g1_policy()->max_pause_time_ms(),
|
||||||
GCCause::_g1_inc_collection_pause);
|
gc_cause);
|
||||||
VMThread::execute(&op);
|
VMThread::execute(&op);
|
||||||
|
|
||||||
HeapWord* result = op.result();
|
HeapWord* result = op.result();
|
||||||
|
|
|
@ -776,9 +776,10 @@ protected:
|
||||||
// it has to be read while holding the Heap_lock. Currently, both
|
// it has to be read while holding the Heap_lock. Currently, both
|
||||||
// methods that call do_collection_pause() release the Heap_lock
|
// methods that call do_collection_pause() release the Heap_lock
|
||||||
// before the call, so it's easy to read gc_count_before just before.
|
// before the call, so it's easy to read gc_count_before just before.
|
||||||
HeapWord* do_collection_pause(size_t word_size,
|
HeapWord* do_collection_pause(size_t word_size,
|
||||||
unsigned int gc_count_before,
|
unsigned int gc_count_before,
|
||||||
bool* succeeded);
|
bool* succeeded,
|
||||||
|
GCCause::Cause gc_cause);
|
||||||
|
|
||||||
// The guts of the incremental collection pause, executed by the vm
|
// The guts of the incremental collection pause, executed by the vm
|
||||||
// thread. It returns false if it is unable to do the collection due
|
// thread. It returns false if it is unable to do the collection due
|
||||||
|
|
|
@ -70,9 +70,6 @@ VM_G1IncCollectionPause::VM_G1IncCollectionPause(
|
||||||
guarantee(target_pause_time_ms > 0.0,
|
guarantee(target_pause_time_ms > 0.0,
|
||||||
err_msg("target_pause_time_ms = %1.6lf should be positive",
|
err_msg("target_pause_time_ms = %1.6lf should be positive",
|
||||||
target_pause_time_ms));
|
target_pause_time_ms));
|
||||||
guarantee(word_size == 0 || gc_cause == GCCause::_g1_inc_collection_pause,
|
|
||||||
"we can only request an allocation if the GC cause is for "
|
|
||||||
"an incremental GC pause");
|
|
||||||
_gc_cause = gc_cause;
|
_gc_cause = gc_cause;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue