Skip to content

Commit 4b3a4ff

Browse files
author
Thomas Schatzl
committedSep 20, 2021
8273940: vmTestbase/vm/mlvm/meth/stress/gc/callSequencesDuringGC/Test.java crashes in full gc during VM exit
Reviewed-by: lkorinth
1 parent dad5d27 commit 4b3a4ff

File tree

3 files changed

+3
-14
lines changed

3 files changed

+3
-14
lines changed
 

‎src/hotspot/share/gc/g1/g1ConcurrentMark.cpp

+3-8
Original file line numberDiff line numberDiff line change
@@ -2036,8 +2036,9 @@ void G1ConcurrentMark::concurrent_cycle_abort() {
20362036
for (uint i = 0; i < _max_num_tasks; ++i) {
20372037
_tasks[i]->clear_region_fields();
20382038
}
2039-
2040-
abort_marking_threads();
2039+
_first_overflow_barrier_sync.abort();
2040+
_second_overflow_barrier_sync.abort();
2041+
_has_aborted = true;
20412042

20422043
SATBMarkQueueSet& satb_mq_set = G1BarrierSet::satb_mark_queue_set();
20432044
satb_mq_set.abandon_partial_marking();
@@ -2048,12 +2049,6 @@ void G1ConcurrentMark::concurrent_cycle_abort() {
20482049
satb_mq_set.is_active() /* expected_active */);
20492050
}
20502051

2051-
void G1ConcurrentMark::abort_marking_threads() {
2052-
_has_aborted = true;
2053-
_first_overflow_barrier_sync.abort();
2054-
_second_overflow_barrier_sync.abort();
2055-
}
2056-
20572052
static void print_ms_time_info(const char* prefix, const char* name,
20582053
NumberSeq& ns) {
20592054
log_trace(gc, marking)("%s%5d %12s: total time = %8.2f s (avg = %8.2f ms).",

‎src/hotspot/share/gc/g1/g1ConcurrentMark.hpp

-4
Original file line numberDiff line numberDiff line change
@@ -495,10 +495,6 @@ class G1ConcurrentMark : public CHeapObj<mtGC> {
495495
void concurrent_cycle_abort();
496496
void concurrent_cycle_end();
497497

498-
// Notifies marking threads to abort. This is a best-effort notification. Does not
499-
// guarantee or update any state after the call.
500-
void abort_marking_threads();
501-
502498
void update_accum_task_vtime(int i, double vtime) {
503499
_accum_task_vtime[i] += vtime;
504500
}

‎src/hotspot/share/gc/g1/g1ConcurrentMarkThread.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,6 @@ void G1ConcurrentMarkThread::run_service() {
159159
}
160160

161161
void G1ConcurrentMarkThread::stop_service() {
162-
_cm->abort_marking_threads();
163-
164162
MutexLocker ml(CGC_lock, Mutex::_no_safepoint_check_flag);
165163
CGC_lock->notify_all();
166164
}

0 commit comments

Comments
 (0)
Please sign in to comment.