[9] RFR (XS): 8151623: Zap freed Metaspace chunks in non-product binaries

Jon Masamitsu jon.masamitsu at oracle.com
Fri Mar 11 17:02:34 UTC 2016



On 3/10/2016 11:55 PM, Vladimir Ivanov wrote:
>
>>> http://cr.openjdk.java.net/~vlivanov/8151623/webrev.02/
>>
>> Yes, like that.
>>
>> The change in the Metachunk constructor changes semantics in that
>> the original code mangled the whole chunk, not just the payload. I'd
>> prefer that the original code is left.  The little bit of code
>> duplication is
>> OK.
> I think they are equivalent:
>
>     _top = initial_top();
>     size_t data_word_size = pointer_delta(end(), _top, sizeof(MetaWord));
>     Copy::fill_to_words((HeapWord*)_top,
>                         data_word_size,
>                         metadata_chunk_initialize);
> vs
>
>     HeapWord* start = (HeapWord*)initial_top();
>     size_t size = word_size() - overhead();
>     Copy::fill_to_words(start, size, word_value);
>
>
> _top == initial_top() and data_word_size == size:
>
>   end() == this + _word_size
>   pointer_delta ==  (end() - _top) / sizeof(MetaWord)

You're right.  I stand corrected.


>
>> http://cr.openjdk.java.net/~vlivanov/8151623/webrev.02/src/share/vm/memory/metachunk.hpp.frames.html 
>>
>>
>> Please use the style "word_value" instead of "wordValue".
> Will fix.

Thanks.

Jon
>
>> If there is a mistake in the mangling of a Metablock, that would
>> show up when the Metaspace shrinks.  Can you check that the testing
>> has some Metaspace shrinking.  I think that -Xlog:gc*=trace would
>> show the needed output.
> Ok, I'll verify that.
>
> Best regards,
> Vladimir Ivanov



More information about the hotspot-dev mailing list