-
Enhancement
-
Resolution: Fixed
-
P4
-
14, 15
-
b22
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8245882 | 14u-cpu | Zhengyu Gu | P4 | Resolved | Fixed | master |
JDK-8245323 | 14.0.2 | Zhengyu Gu | P4 | Resolved | Fixed | b08 |
Current definition of ShenandoahThreadLocalData is odd:
static void initialize_gclab(Thread* thread) {
assert (thread->is_Java_thread() || thread->is_Worker_thread(), "Only Java and GC worker threads are allowed to get GCLABs");
assert(data(thread)->_gclab == NULL, "Only initialize once");
data(thread)->_gclab = new PLAB(PLAB::min_size());
data(thread)->_gclab_size = 0;
data(thread)->_disarmed_value = ShenandoahCodeRoots::disarmed_value();
}
Why does initialize_gclab initializes _disarmed_value? It should get its own setter.
static void initialize_gclab(Thread* thread) {
assert (thread->is_Java_thread() || thread->is_Worker_thread(), "Only Java and GC worker threads are allowed to get GCLABs");
assert(data(thread)->_gclab == NULL, "Only initialize once");
data(thread)->_gclab = new PLAB(PLAB::min_size());
data(thread)->_gclab_size = 0;
data(thread)->_disarmed_value = ShenandoahCodeRoots::disarmed_value();
}
Why does initialize_gclab initializes _disarmed_value? It should get its own setter.
- backported by
-
JDK-8245323 Shenandoah: move ShenandoahThreadLocalData::_disarmed_value initialization
-
- Resolved
-
-
JDK-8245882 Shenandoah: move ShenandoahThreadLocalData::_disarmed_value initialization
-
- Resolved
-
- blocks
-
JDK-8244327 Shenandoah: GC workers should always get the largest GCLABs
-
- New
-
- relates to
-
JDK-8244821 Shenandoah: disarmed_value is initialized at wrong place
-
- Resolved
-