RFR(XS) 8191931: NMT test for anonymous/delegating metadata space sizing

Zhengyu Gu zgu at redhat.com
Thu Mar 15 15:37:49 UTC 2018


Hi Thomas,

On 03/15/2018 11:13 AM, Thomas Stüfe wrote:
> Hi Zhengyu,
> 
> http://cr.openjdk.java.net/~zgu/8191931/webrev.00/src/hotspot/share/memory/metaspace.cpp.udiff.html
> 
> Not sure, but would this test not break if the class loader allocates a 
> metablock which does not fit into a specialized chunk before reaching 
> _anon_and_delegating_metadata_specialize_chunk_limit - which is a 
> theoretically valid scenario?
> 
> See calc_chunk_size():
> 
>    if ((_space_type == Metaspace::AnonymousMetaspaceType || _space_type 
> == Metaspace::ReflectionMetaspaceType) &&
>        _mdtype == Metaspace::NonClassType &&
>        sum_count_in_chunks_in_use(SpecializedIndex) < 
> _anon_and_delegating_metadata_specialize_chunk_limit &&
>        word_size + Metachunk::overhead() <= SpecializedChunk) {          
>    <<<<
>      return SpecializedChunk;
>    }
Oops, I completely messed up here.

I guess there is *not* reliable way to test this, cause it can jump to 
any size in theory ...

Thanks,

-Zhengyu


> 
> In other words, encountering small/medium chunks before reaching the 
> spec chunk limit could be, at least according to calc_chunk_size(), a 
> valid albeit rare scenario.
> 
> --
> 
> nits:
> 
> "should use up to"  -> "should use at least"
> "midium" -> "medium"
> 
> Should the comment not be:
> 
> -// _anon_and_delegating_metadata_specialize_chunk_limit small chunks 
> before jump to midium chunks,
> +// _anon_and_delegating_metadata_specialize_chunk_limit specialized 
> chunks before jump to medium chunks,
> 
> ?
> 
> Do we always jump right to medium chunks from specialized chunks?
> 
> --
> 
> If your intention is to test "there shall be no small/medium chunks 
> before we have reached the limit of specialized chunks", would it not be 
> easier to test just that:
> 
> if (sum_count_in_chunks_in_use(MediumIndex) > 0) {
>    assert(sum_count_in_chunks_in_use(SpecializedIndex) >= limit)
> }
> 
> instead of calculating and comparing the capacity?
> 
> Best Regards, Thomas
> 
> 
> 
> On Thu, Mar 15, 2018 at 3:52 PM, Zhengyu Gu <zgu at redhat.com 
> <mailto:zgu at redhat.com>> wrote:
> 
>     Hi,
> 
>     Please review a new gtest to ensure correct sizing for anonymous and
>     reflection delegating classloade's metadata space.
> 
>     Bug: https://bugs.openjdk.java.net/browse/JDK-8191931
>     <https://bugs.openjdk.java.net/browse/JDK-8191931>
>     Webrev: http://cr.openjdk.java.net/~zgu/8191931/webrev.00/index.html
>     <http://cr.openjdk.java.net/~zgu/8191931/webrev.00/index.html>
> 
> 
>     Thanks,
> 
>     -Zhengyu
> 
> 


More information about the hotspot-runtime-dev mailing list