RFR: 8296785: Use realloc for CHeap-allocated BitMaps [v2]

Thomas Stuefe stuefe at openjdk.org
Wed Nov 16 15:14:59 UTC 2022


On Wed, 16 Nov 2022 12:35:30 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:

>> Today CHeap allocated bitmaps don't resize with realloc. I'd like to change that by fixing that by adding support for realloc in the ArrayAllocator classes, and then use that when resizing the bitmaps.
>> 
>> We've been using and testing one version of this patch in the Generational ZGC repository for a while now. That version is slightly different because of recent rewrites of the bitmaps, but in essence the same. See:
>> https://github.com/openjdk/zgc/commit/ca692f686bda8d86d3786c2afc782bfdc54fbdfc
>
> Stefan Karlsson has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
> 
>  - 8296785: Use realloc for CHeap-allocated BitMaps
>  - Merge remote-tracking branch 'upstream/master' into 8296774_bitmap_stricter_construction
>  - 8296774: Removed default MEMFLAGS value from CHeapBitMap

LGTM. I followed all allocation paths, seems ok. Had to look awhile until I found where we guarantee realloc(0) never returns null.

src/hotspot/share/utilities/bitMap.cpp line 53:

> 51: 
> 52:   return map;
> 53: }

Could this live inside `GrowableBitmap<T>` as a private static function?

-------------

Marked as reviewed by stuefe (Reviewer).

PR: https://git.openjdk.org/jdk/pull/11102


More information about the hotspot-dev mailing list