[15]RFR: 8238356: CodeHeap::blob_count() overestimates the number of blobs

Rahul Raghavan rahul.v.raghavan at oracle.com
Mon Feb 17 08:12:24 UTC 2020


Hi,

Please review the following fix changeset.

<webrev> - http://cr.openjdk.java.net/~rraghavan/8238356/webrev.00/
<JBS> -  https://bugs.openjdk.java.net/browse/JDK-8238356

Issue reported - CodeHeap::blob_count() can miscalculate the blob count.
CodeHeap::_blob_count is only incremented, never decremented.

Webrev fix proposal, same as suggested by Aleksey Shipilev,
is to decrement _blob_count on addition to the free list.

[src/hotspot/share/memory/heap.cpp]
  void CodeHeap::add_to_freelist(HeapBlock* a) {
    FreeBlock* b = (FreeBlock*)a;
    size_t bseg = segment_for(b);
    _freelist_length++;

+ _blob_count--;
+ assert(_blob_count >= 0, "sanity");
+
    assert(b != _freelist, "cannot be removed twice");

Found no issues with precheckin, tier1 - tier5 testing.


Thanks,
Rahul


More information about the hotspot-compiler-dev mailing list