Review request: 8026391: The Metachunk header wastes memory - 8026392: Metachunks and Metablocks are using a too large alignment
stefan.karlsson at oracle.com
Mon Oct 14 22:56:25 PDT 2013
On 2013-10-14 22:40, Jon Masamitsu wrote:
> Comments only on the first patch.
> Looks good. Couple of questions.
> Why the change from _is_free to _is_marked_free?
> 58 bool _is_free;
> 105 DEBUG_ONLY(bool _is_marked_free;)
> Is it to specifically distinguish it from the FreeChunk is_free()?
> The "marked" in the name feels a little like GC when it
> isn't GC related. Would "_is_tagged_free" make sense?
Sounds good. I'll change it.
> Did you consider changing the file names from Metachunk.* to
> Metamem.*? The file contains the classes Metamem, Metablock,
> and Metachunk. It sees more natural to me to have the file named
> after the more general Metamem class. Then all the classes in
> the file are Metamem (or derived from), yes?
Coleen, has the opposite opinion. See answers to the other mails.
> On 10/14/13 4:58 AM, Stefan Karlsson wrote:
>> Please, review these two patches to remove some of the wastages
>> introduced in the metaspace.
>> 8026391: The Metachunk header wastes memory
>> There are a couple of fields in Metachunk that store already known
>> information, like the beginning and the end of the Metachunk. I
>> replaced those fields with code instead.
>> To make this easier, I extracted some duplicated code in Metablock
>> and Metachunk into a super class named Metamem. The extracted code is
>> purely needed to allow these objects to be placed on the FreeList and
>> in the BinaryTreeDictionary.
>> 8026392: Metachunks and Metablocks are using a too large alignment
>> The metaspace code was using ARENA_ALIGN to align the Metablocks and
>> Metachunk header. This forced all allocations of metadata to be 16
>> bytes aligned. This patch patch changes the restriction to be 8 bytes
>> instead, since that's the restriction needed for 64 bit types like
>> long, double, pointers and klass pointers,
>> Testing: Added unit test for Metachunk. JPRT (before splitting of the
More information about the hotspot-dev