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

Man Cao manc at google.com
Sat Dec 9 02:57:12 UTC 2017


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.cpp 2017-12-08
18:42:48.960285998 -0800
+++ new/src/hotspot/share/memory/metaspace.cpp 2017-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> 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>:
> > 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> 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(MinMetaspaceExpansion,
> >> _commit_alignment);
> >>    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 =
> >>        VIRTUALSPACEMULTIPLIER * InitialBootClassLoaderMetaspaceSize;
> >> @@ -3341,6 +3338,8 @@
> >>                    min_metaspace_sz);
> >>    }
> >>
> >> +  CompressedClassSpaceSize = align_down_bounded(
> CompressedClassSpaceSize,
> >> _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> wrote:
> >>>
> >>> Hello,
> >>>
> >>> This patch is a follow-up fix for
> >>> 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/
> 2017-November/025200.html
> >>>
> >>> This code patch is attached. Could anyone review and/or sponsor this
> >>> patch?
> >>>
> >>> Best,
> >>> Man
> >>
> >>
> >
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jdk10hs.patch
Type: text/x-patch
Size: 716 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20171208/937e16fc/jdk10hs.patch>


More information about the hotspot-runtime-dev mailing list