Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8210492

PLAB object promotion events report object sizes in words

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 12
    • None
    • hotspot
    • gc
    • 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.

            tschatzl Thomas Schatzl
            mgronlun Markus Grönlund
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: