[8u40]: RFR (backport): 8049599: MetaspaceGC::_capacity_until_GC can overflow

Erik Helin erik.helin at oracle.com
Fri Oct 10 10:05:34 UTC 2014


Hi all,

the patch in jdk9/hs-gc/hotspot [0] did not apply cleanly to 
jdk8u/hs-dev/hotspot, the problem is the following part of the patch to 
whitebox.cpp (long lines truncated with ...):

--- whitebox.cpp
+++ whitebox.cpp
@@ -986,16 +1013,18 @@ static JNINativeMethod methods[] = {
    {CC"isInStringTable",    CC"(Ljava/lang/String;)Z", ...
    {CC"fullGC",   CC"()V", (void*)&WB_FullGC },
    {CC"youngGC",  CC"()V", (void*)&WB_YoungGC },
    {CC"readReservedMemory", CC"()V", (void*)&WB_ReadReservedMemory },
    {CC"allocateMetaspace", CC"(Ljava/lang/ClassLoader;J)J", ...
    {CC"freeMetaspace", CC"(Ljava/lang/ClassLoader;JJ)V", ...
+  {CC"incMetaspaceCapacityUntilGC", CC"(J)J", ...
+  {CC"metaspaceCapacityUntilGC", CC"()J", ...
    {CC"getCPUFeatures", CC"()Ljava/lang/String;" ...
    {CC"getNMethod", CC"(Ljava/lang/reflect/Executable;Z) ...
    {CC"getThreadStackSize", CC"()J", (void*)&WB_GetThreadStackSize },
    {CC"getThreadRemainingStackSize", CC"()J, ...
};

The problem is that the last two whitebox functions, 
"getThreadStackSize" and "getThreadRemainingStackSize" has not been 
backported to jdk8u, so the patch fails to apply since the context is 
different.

Webrev:
- full: http://cr.openjdk.java.net/~ehelin/8049599/webrev.8u40/
- diff between the two patches (very minor, just a context change):
   http://cr.openjdk.java.net/~ehelin/8049599/webrev.8u40/diff.patch

Thanks,
Erik



More information about the hotspot-gc-dev mailing list