Make reserved_size for compressed class space and metaspace respect the ergo-initialized CompressedClassSpaceSize flag value

Man Cao manc at google.com
Tue Dec 12 00:38:25 UTC 2017


Hi Coleen,

Thanks for sponsoring this patch! Yes, I'm covered by the agreement signed
by Google Inc. [1]
Could this patch be a part of
https://bugs.openjdk.java.net/browse/JDK-8087291, as this is a simple
follow-up fix?
If not, could you or someone else create a bug, as I don't have an account
to create one?

[1] http://www.oracle.com/technetwork/community/oca-486395.html#g

-Man

On Mon, Dec 11, 2017 at 2:27 PM, <coleen.phillimore at oracle.com> wrote:

> Hi this looks good and I will sponsor this with you as contributor using
> manc at google.com .
>
> Have you signed the contributor agreement or are covered by one?
>
> thanks,
> Coleen
>
> On 12/9/17 7:37 AM, Yasumasa Suenaga wrote:
>
>> Hi Man,
>>
>> Looks good, but you need to get a sponsor.
>>
>>
>> Thanks,
>>
>> Yasumasa
>>
>>
>> On 2017/12/09 11:57, Man Cao wrote:
>>
>>> Hi Yasumasa,
>>>
>>> Thanks for the review! Although I think moving or not moving
>>> "CompressedClassSpaceSize = align_size_down_bounded()" are equivalent
>>> because of logic of alignment and FLAG_SET_ERGO, I made the change you
>>> suggested anyway.
>>> The new patch is attached and inlined below.
>>>
>>>
>>> --- old/src/hotspot/share/memory/metaspace.cpp2017-12-08
>>> 18:42:48.960285998 -0800
>>> +++ new/src/hotspot/share/memory/metaspace.cpp2017-12-08
>>> 18:42:48.600288972 -0800
>>> @@ -3322,7 +3322,6 @@
>>>     MaxMetaspaceExpansion = align_down_bounded(MaxMetaspaceExpansion,
>>> _commit_alignment);
>>>     CompressedClassSpaceSize = align_down_bounded(CompressedClassSpaceSize,
>>> _reserve_alignment);
>>> -  set_compressed_class_space_size(CompressedClassSpaceSize);
>>>     // Initial virtual space size will be calculated at
>>> global_initialize()
>>>     size_t min_metaspace_sz =
>>> @@ -3341,6 +3340,7 @@
>>>                     min_metaspace_sz);
>>>     }
>>> +  set_compressed_class_space_size(CompressedClassSpaceSize);
>>>   }
>>>   void Metaspace::global_initialize() {
>>>
>>>
>>> Thanks,
>>> Man
>>>
>>> On Thu, Dec 7, 2017 at 9:44 PM, Yasumasa Suenaga <yasuenag at gmail.com
>>> <mailto:yasuenag at gmail.com>> wrote:
>>>
>>>     Hi Man,
>>>
>>>     CompressedClassSpaceSize might be modified by FLAG_SET_ERGO.
>>>     So I think you need to move set_compressed_class_space_size() only.
>>>
>>>
>>>     Thanks,
>>>
>>>     Yasumasa
>>>
>>>
>>>
>>>     2017-12-08 3:42 GMT+09:00 Man Cao <manc at google.com <mailto:
>>> manc at google.com>>:
>>>      > Hello,
>>>      >
>>>      > This is a friendly ping. Could anyone review or sponsor this
>>> change? It's
>>>      > just a two-liner change.
>>>      >
>>>      > -Man
>>>      >
>>>      > On Thu, Nov 30, 2017 at 2:03 PM, Man Cao <manc at google.com
>>> <mailto:manc at google.com>> wrote:
>>>      >>
>>>      >> I realized that the email attachment is probably dropped by the
>>> mailing
>>>      >> list, so below is the inlined patch.
>>>      >>
>>>      >> --- old/src/hotspot/share/memory/metaspace.cpp 2017-11-29
>>>      >> 14:56:59.017118444 -0800
>>>      >> +++ new/src/hotspot/share/memory/metaspace.cpp 2017-11-29
>>>      >> 14:56:58.657121375 -0800
>>>      >> @@ -3321,9 +3321,6 @@
>>>      >>    MinMetaspaceExpansion = align_down_bounded(MinMetaspac
>>> eExpansion,
>>>      >> _commit_alignment);
>>>      >>    MaxMetaspaceExpansion = align_down_bounded(MaxMetaspac
>>> eExpansion,
>>>      >> _commit_alignment);
>>>      >>
>>>      >> -  CompressedClassSpaceSize = align_down_bounded(CompressedC
>>> lassSpaceSize,
>>>      >> _reserve_alignment);
>>>      >> - set_compressed_class_space_size(CompressedClassSpaceSize);
>>>      >> -
>>>      >>    // Initial virtual space size will be calculated at
>>> global_initialize()
>>>      >>    size_t min_metaspace_sz =
>>>      >>        VIRTUALSPACEMULTIPLIER * InitialBootClassLoaderMetaspac
>>> eSize;
>>>      >> @@ -3341,6 +3338,8 @@
>>>      >>                    min_metaspace_sz);
>>>      >>    }
>>>      >>
>>>      >> +  CompressedClassSpaceSize = align_down_bounded(CompressedC
>>> lassSpaceSize,
>>>      >> _reserve_alignment);
>>>      >> + set_compressed_class_space_size(CompressedClassSpaceSize);
>>>      >>  }
>>>      >>
>>>      >>  void Metaspace::global_initialize() {
>>>      >>
>>>      >> Best,
>>>      >> Man
>>>      >>
>>>      >> On Wed, Nov 29, 2017 at 3:21 PM, Man Cao <manc at google.com
>>> <mailto:manc at google.com>> wrote:
>>>      >>>
>>>      >>> Hello,
>>>      >>>
>>>      >>> This patch is a follow-up fix for
>>>      >>> https://bugs.openjdk.java.net/browse/JDK-8087291 <
>>> https://bugs.openjdk.java.net/browse/JDK-8087291>
>>>      >>>
>>>      >>> This patch moves the call to set_compressed_class_space_size()
>>> after the
>>>      >>> flag value for CompressedClassSpaceSize is ergo-initialized,
>>> fixing the
>>>      >>> issue that the reserved size for compressed class space and
>>> metaspace is
>>>      >>> excessively large when MaxMetaspaceSize is set to a small
>>> value. More
>>>      >>> discussion about it is available here:
>>>      >>>
>>>      >>> http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2
>>> 017-November/025200.html <http://mail.openjdk.java.net/
>>> pipermail/hotspot-runtime-dev/2017-November/025200.html>
>>>      >>>
>>>      >>> This code patch is attached. Could anyone review and/or sponsor
>>> this
>>>      >>> patch?
>>>      >>>
>>>      >>> Best,
>>>      >>> Man
>>>      >>
>>>      >>
>>>      >
>>>
>>>
>>>
>


More information about the hotspot-runtime-dev mailing list