mirror of
https://github.com/openjdk/jdk.git
synced 2026-04-21 12:20:29 +00:00
8382257: Shenandoah: Clean up stack watermark barrier support
Reviewed-by: kdnilsen, wkemper
This commit is contained in:
parent
17ee366ff9
commit
10e23dd582
@ -50,7 +50,6 @@ void ShenandoahPassiveMode::initialize_flags() const {
|
||||
SHENANDOAH_ERGO_DISABLE_FLAG(ShenandoahSATBBarrier);
|
||||
SHENANDOAH_ERGO_DISABLE_FLAG(ShenandoahCASBarrier);
|
||||
SHENANDOAH_ERGO_DISABLE_FLAG(ShenandoahCloneBarrier);
|
||||
SHENANDOAH_ERGO_DISABLE_FLAG(ShenandoahStackWatermarkBarrier);
|
||||
SHENANDOAH_ERGO_DISABLE_FLAG(ShenandoahCardBarrier);
|
||||
}
|
||||
|
||||
|
||||
@ -42,6 +42,5 @@ void ShenandoahSATBMode::initialize_flags() const {
|
||||
SHENANDOAH_CHECK_FLAG_SET(ShenandoahSATBBarrier);
|
||||
SHENANDOAH_CHECK_FLAG_SET(ShenandoahCASBarrier);
|
||||
SHENANDOAH_CHECK_FLAG_SET(ShenandoahCloneBarrier);
|
||||
SHENANDOAH_CHECK_FLAG_SET(ShenandoahStackWatermarkBarrier);
|
||||
SHENANDOAH_CHECK_FLAG_UNSET(ShenandoahCardBarrier);
|
||||
}
|
||||
|
||||
@ -149,11 +149,9 @@ void ShenandoahBarrierSet::on_thread_attach(Thread *thread) {
|
||||
BarrierSetNMethod* bs_nm = barrier_set_nmethod();
|
||||
thread->set_nmethod_disarmed_guard_value(bs_nm->disarmed_guard_value());
|
||||
|
||||
if (ShenandoahStackWatermarkBarrier) {
|
||||
JavaThread* const jt = JavaThread::cast(thread);
|
||||
StackWatermark* const watermark = new ShenandoahStackWatermark(jt);
|
||||
StackWatermarkSet::add_watermark(jt, watermark);
|
||||
}
|
||||
JavaThread* const jt = JavaThread::cast(thread);
|
||||
StackWatermark* const watermark = new ShenandoahStackWatermark(jt);
|
||||
StackWatermarkSet::add_watermark(jt, watermark);
|
||||
}
|
||||
}
|
||||
|
||||
@ -172,14 +170,12 @@ void ShenandoahBarrierSet::on_thread_detach(Thread *thread) {
|
||||
}
|
||||
|
||||
// SATB protocol requires to keep alive reachable oops from roots at the beginning of GC
|
||||
if (ShenandoahStackWatermarkBarrier) {
|
||||
if (_heap->is_concurrent_mark_in_progress()) {
|
||||
ShenandoahKeepAliveClosure oops;
|
||||
StackWatermarkSet::finish_processing(JavaThread::cast(thread), &oops, StackWatermarkKind::gc);
|
||||
} else if (_heap->is_concurrent_weak_root_in_progress() && _heap->is_evacuation_in_progress()) {
|
||||
ShenandoahContextEvacuateUpdateRootsClosure oops;
|
||||
StackWatermarkSet::finish_processing(JavaThread::cast(thread), &oops, StackWatermarkKind::gc);
|
||||
}
|
||||
if (_heap->is_concurrent_mark_in_progress()) {
|
||||
ShenandoahKeepAliveClosure oops;
|
||||
StackWatermarkSet::finish_processing(JavaThread::cast(thread), &oops, StackWatermarkKind::gc);
|
||||
} else if (_heap->is_concurrent_weak_root_in_progress() && _heap->is_evacuation_in_progress()) {
|
||||
ShenandoahContextEvacuateUpdateRootsClosure oops;
|
||||
StackWatermarkSet::finish_processing(JavaThread::cast(thread), &oops, StackWatermarkKind::gc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -560,9 +560,6 @@
|
||||
product(bool, ShenandoahLoadRefBarrier, true, DIAGNOSTIC, \
|
||||
"Turn on/off load-reference barriers in Shenandoah") \
|
||||
\
|
||||
product(bool, ShenandoahStackWatermarkBarrier, true, DIAGNOSTIC, \
|
||||
"Turn on/off stack watermark barriers in Shenandoah") \
|
||||
\
|
||||
develop(bool, ShenandoahVerifyOptoBarriers, trueInDebug, \
|
||||
"Verify no missing barriers in C2.") \
|
||||
\
|
||||
|
||||
@ -52,8 +52,7 @@ public class TestSelectiveBarrierFlags {
|
||||
new String[] { "ShenandoahLoadRefBarrier" },
|
||||
new String[] { "ShenandoahSATBBarrier" },
|
||||
new String[] { "ShenandoahCASBarrier" },
|
||||
new String[] { "ShenandoahCloneBarrier" },
|
||||
new String[] { "ShenandoahStackWatermarkBarrier" }
|
||||
new String[] { "ShenandoahCloneBarrier" }
|
||||
};
|
||||
|
||||
int size = 1;
|
||||
|
||||
@ -41,8 +41,7 @@ public class TestWrongBarrierDisable {
|
||||
"ShenandoahLoadRefBarrier",
|
||||
"ShenandoahSATBBarrier",
|
||||
"ShenandoahCASBarrier",
|
||||
"ShenandoahCloneBarrier",
|
||||
"ShenandoahStackWatermarkBarrier",
|
||||
"ShenandoahCloneBarrier"
|
||||
};
|
||||
|
||||
String[] generational = {
|
||||
|
||||
@ -41,8 +41,7 @@ public class TestWrongBarrierEnable {
|
||||
"ShenandoahLoadRefBarrier",
|
||||
"ShenandoahSATBBarrier",
|
||||
"ShenandoahCASBarrier",
|
||||
"ShenandoahCloneBarrier",
|
||||
"ShenandoahStackWatermarkBarrier",
|
||||
"ShenandoahCloneBarrier"
|
||||
};
|
||||
String[] generational = { "ShenandoahCardBarrier" };
|
||||
String[] all = {
|
||||
@ -50,7 +49,6 @@ public class TestWrongBarrierEnable {
|
||||
"ShenandoahSATBBarrier",
|
||||
"ShenandoahCASBarrier",
|
||||
"ShenandoahCloneBarrier",
|
||||
"ShenandoahStackWatermarkBarrier",
|
||||
"ShenandoahCardBarrier"
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user