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

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


Hi,

can I have a second review for this change?

The latest webrev is at:
http://cr.openjdk.java.net/~mgerdin/8009561/webrev.3/


/Mikael

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:
> http://cr.openjdk.java.net/~mgerdin/8009561/webrev.0/
>
> Incremental webrev for splitting blocks:
> http://cr.openjdk.java.net/~mgerdin/8009561/webrev.0%2b/
>
> Bug links:
> https://jbs.oracle.com/bugs/browse/JDK-8009561
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8009561
>
> Thanks
> /Mikael


More information about the hotspot-gc-dev mailing list