-
Bug
-
Resolution: Fixed
-
P4
-
None
-
b16
void G1ParScanThreadState::report_promotion_event(InCSetState const dest_state,
oop const old, size_t word_sz, uint age,
HeapWord * const obj_ptr) const {
PLAB* alloc_buf = _plab_allocator->alloc_buffer(dest_state);
if (alloc_buf->contains(obj_ptr)) {
_g1h->_gc_tracer_stw->report_promotion_in_new_plab_event(old->klass(), word_sz, age,
dest_state.value() == InCSetState::Old,
alloc_buf->word_sz());
} else {
_g1h->_gc_tracer_stw->report_promotion_outside_plab_event(old->klass(), word_sz, age,
dest_state.value() == InCSetState::Old);
}
}
// word size == n
void YoungGCTracer::report_promotion_in_new_plab_event(Klass* klass, size_t obj_size, <<------------
uint age, bool tenured,
size_t plab_size) const {
send_promotion_in_new_plab_event(klass, obj_size, age, tenured, plab_size);
}
Event describes an object with obj_size n, but n is still word_sz. Missing conversion / expansion.
oop const old, size_t word_sz, uint age,
HeapWord * const obj_ptr) const {
PLAB* alloc_buf = _plab_allocator->alloc_buffer(dest_state);
if (alloc_buf->contains(obj_ptr)) {
_g1h->_gc_tracer_stw->report_promotion_in_new_plab_event(old->klass(), word_sz, age,
dest_state.value() == InCSetState::Old,
alloc_buf->word_sz());
} else {
_g1h->_gc_tracer_stw->report_promotion_outside_plab_event(old->klass(), word_sz, age,
dest_state.value() == InCSetState::Old);
}
}
// word size == n
void YoungGCTracer::report_promotion_in_new_plab_event(Klass* klass, size_t obj_size, <<------------
uint age, bool tenured,
size_t plab_size) const {
send_promotion_in_new_plab_event(klass, obj_size, age, tenured, plab_size);
}
Event describes an object with obj_size n, but n is still word_sz. Missing conversion / expansion.
- relates to
-
JDK-8212766 TestPromotionEventWithG1.java failed due to "RuntimeException: PLAB size is smaller than object size."
- Resolved