Request for review: JDK-8009561 NPG: Metaspace fragmentation when retiring a Metachunk

Mikael Gerdin mikael.gerdin at
Tue Sep 10 01:25:25 PDT 2013


can I have a second review for this change?

The latest webrev is at:


On 2013-06-05 16:04, Mikael Gerdin wrote:
> Hi,
> Can I have some reviews of this small fix to the Metaspace memory
> allocation path.
> Problem:
> When a Metaspace allocation request cannot be satisfied by the current
> chunk the chunk is retired and a new chunk is requested. This causes
> whatever is left in the chunk to be effectively leaked.
> Suggested fix:
> Put the remaining memory in each chunk on the Metablock freelist so it
> can be used to satisfy future allocations.
> Possible addition:
> When allocating from the block free list, use
> FreeBlockDictionary<Metablock>::atLeast instead of
> FreeBlockDictionary<Metablock>::exactly and split the Metablock if it's
> large enough.
> One might argue that this increases the fragmentation of the memory on
> the block free list but I think that we primarily want to use the block
> free list for small allocations and allocate from chunks for large
> allocations.
> Webrev:
> Only fix:
> Incremental webrev for splitting blocks:
> Bug links:
> Thanks
> /Mikael

More information about the hotspot-gc-dev mailing list