# HG changeset patch # User amurillo # Date 1430477761 25200 # Node ID f86dca6d273774370a579e432ec4c404f0e29c08 # Parent 989253a902c34dcb7564695161c9200a5fbb7412# Parent da2deb02101f87260f19a409f92128106f0b38cf Merge diff -r 989253a902c3 -r f86dca6d2737 common/bin/unshuffle_list.txt --- a/common/bin/unshuffle_list.txt Wed Jul 05 20:31:05 2017 +0200 +++ b/common/bin/unshuffle_list.txt Fri May 01 03:56:01 2015 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -1156,7 +1156,6 @@ jdk/src/java.management/share/classes/com/sun/jmx/interceptor : jdk/src/share/classes/com/sun/jmx/interceptor jdk/src/java.management/share/classes/com/sun/jmx/mbeanserver : jdk/src/share/classes/com/sun/jmx/mbeanserver jdk/src/java.management/share/classes/com/sun/jmx/remote : jdk/src/share/classes/com/sun/jmx/remote -jdk/src/java.management/share/classes/com/sun/management : jdk/src/share/classes/com/sun/management jdk/src/java.management/share/classes/java/lang/management : jdk/src/share/classes/java/lang/management jdk/src/java.management/share/classes/javax/management : jdk/src/share/classes/javax/management jdk/src/java.management/share/classes/mgmt-overview.html : jdk/src/share/classes/com/sun/management/mgmt-overview.html @@ -1429,6 +1428,7 @@ jdk/src/jdk.localedata/share/classes/sun/util/resources/uk : jdk/src/share/classes/sun/util/resources/uk jdk/src/jdk.localedata/share/classes/sun/util/resources/vi : jdk/src/share/classes/sun/util/resources/vi jdk/src/jdk.localedata/share/classes/sun/util/resources/zh : jdk/src/share/classes/sun/util/resources/zh +jdk/src/jdk.management/share/classes/com/sun/management : jdk/src/share/classes/com/sun/management jdk/src/jdk.naming.dns/share/classes/com/sun/jndi/dns : jdk/src/share/classes/com/sun/jndi/dns jdk/src/jdk.naming.dns/share/classes/com/sun/jndi/url/dns : jdk/src/share/classes/com/sun/jndi/url/dns jdk/src/jdk.naming.dns/share/classes/META-INF/services : jdk/src/share/classes/sun/net/spi/nameservice/dns/META-INF/services diff -r 989253a902c3 -r f86dca6d2737 make/Images.gmk --- a/make/Images.gmk Wed Jul 05 20:31:05 2017 +0200 +++ b/make/Images.gmk Fri May 01 03:56:01 2015 -0700 @@ -70,7 +70,7 @@ # compact3 builds have additional modules JDK_COMPACT3_MODULES := java.compact3 java.smartcardio jdk.httpserver jdk.naming.dns \ - jdk.naming.rmi jdk.sctp jdk.security.auth + jdk.naming.rmi jdk.sctp jdk.security.auth jdk.management # Replacing double-comma with a single comma is to workaround the issue # with some version of make on windows that doesn't substitute spaces diff -r 989253a902c3 -r f86dca6d2737 make/jprt.properties --- a/make/jprt.properties Wed Jul 05 20:31:05 2017 +0200 +++ b/make/jprt.properties Fri May 01 03:56:01 2015 -0700 @@ -28,8 +28,8 @@ # Global settings # -# Regression tests depend on test bundle -jprt.use.reg.test.bundle=true +# Install test bundle for targets in jprt.test.bundle.targets set +jprt.selective.test.bundle.installation=true # The current release name jprt.tools.default.release=jdk9 @@ -48,6 +48,9 @@ # Use configure when building jprt.build.use.configure=true +# Set up the run flavors (jvm variants) +jprt.run.flavors=c1,c2,default,${my.additional.run.flavors} + # Set make target to use for different build flavors jprt.build.flavor.debugOpen.target=jprt_bundle jprt.build.flavor.fastdebug.target=jprt_bundle @@ -73,6 +76,7 @@ # Select test targets - jprt default for jprt.test.set is "default" jprt.test.targets=${my.test.targets.${jprt.test.set}} jprt.make.rule.test.targets=${my.make.rule.test.targets.${jprt.test.set}} +jprt.test.bundle.targets=${my.jprt.test.bundle.targets.${jprt.test.set}} # 7155453: Work-around to prevent popups on OSX from blocking test completion # but the work-around is added to all platforms to be consistent @@ -415,19 +419,15 @@ # Make file based test targets -my.make.rule.test.targets.hotspot.clienttests= \ - linux_i586_2.6-*-c1-hotspot_clienttest, \ - windows_i586_6.2-*-c1-hotspot_clienttest - -my.make.rule.test.targets.hotspot.servertests= \ - solaris_sparcv9_5.11-*-c2-hotspot_servertest, \ - solaris_x64_5.11-*-c2-hotspot_servertest, \ - linux_i586_2.6-*-c2-hotspot_servertest, \ - linux_x64_2.6-*-c2-hotspot_servertest, \ - macosx_x64_10.9-*-c2-hotspot_servertest, \ - windows_i586_6.2-*-c2-hotspot_servertest, \ - windows_x64_6.2-*-c2-hotspot_servertest - +my.make.rule.test.targets.hotspot.basicvmtests= \ + linux_i586_2.6-*-default-hotspot_basicvmtest, \ + linux_x64_2.6-*-default-hotspot_basicvmtest, \ + macosx_x64_10.9-*-default-hotspot_basicvmtest, \ + solaris_sparcv9_5.11-*-default-hotspot_basicvmtest, \ + solaris_x64_5.11-*-default-hotspot_basicvmtest, \ + windows_i586_6.2-*-default-hotspot_basicvmtest, \ + windows_x64_6.2-*-default-hotspot_basicvmtest + my.make.rule.test.targets.hotspot.internalvmtests= \ solaris_sparcv9_5.11-fastdebug-c2-hotspot_internalvmtests, \ solaris_x64_5.11-fastdebug-c2-hotspot_internalvmtests, \ @@ -448,10 +448,8 @@ linux_i586_2.6-fastdebug-c1-GROUP, \ windows_i586_6.2-fastdebug-c1-GROUP -my.make.rule.test.targets.hotspot= \ - ${my.make.rule.test.targets.hotspot.clienttests}, \ - ${my.make.rule.test.targets.hotspot.servertests}, \ - ${my.make.rule.test.targets.hotspot.internalvmtests}, \ +# Hotspot jtreg tests +my.make.rule.test.targets.hotspot.reg= \ ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_wbapitest}, \ ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_compiler_1}, \ ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_compiler_2}, \ @@ -461,12 +459,29 @@ ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_gc_closed}, \ ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_gc_gcold}, \ ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_runtime}, \ - ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_runtime_closed}, \ ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_serviceability}, \ ${my.make.rule.test.targets.hotspot.reg.group:GROUP=jdk_svc_sanity}, \ - ${my.additional.make.rule.test.targets.hotspot} + ${my.additional.make.rule.test.targets.hotspot.reg} + +# Other Makefile based Hotspot tests +my.make.rule.test.targets.hotspot.other= \ + ${my.make.rule.test.targets.hotspot.basicvmtests}, \ + ${my.make.rule.test.targets.hotspot.internalvmtests}, \ + ${my.additional.make.rule.test.targets.hotspot.other} + +# All the makefile based tests to run +my.make.rule.test.targets.hotspot= \ + ${my.make.rule.test.targets.hotspot.reg} \ + ${my.make.rule.test.targets.hotspot.other} + +# Install the test bundle for the testset hotspot jtreg tests +# (but not for the other Makefile based tests) +my.jprt.test.bundle.targets.hotspot=${my.make.rule.test.targets.hotspot.reg} # Native jdk and hotspot test targets (testset=nativesanity) my.make.rule.test.targets.nativesanity= \ ${my.test.target.set:TESTNAME=jdk_native_sanity}, \ ${my.test.target.set:TESTNAME=hotspot_native_sanity} + +# Install the test bundle for the nativesanity jtreg tests +my.jprt.test.bundle.targets.nativesanity=${my.make.rule.test.targets.nativesanity} diff -r 989253a902c3 -r f86dca6d2737 modules.xml --- a/modules.xml Wed Jul 05 20:31:05 2017 +0200 +++ b/modules.xml Fri May 01 03:56:01 2015 -0700 @@ -222,11 +222,13 @@ jdk.internal.org.objectweb.asm jdk.jfr jdk.scripting.nashorn + java.instrument jdk.internal.org.objectweb.asm.commons jdk.jfr jdk.scripting.nashorn + java.instrument jdk.internal.org.objectweb.asm.signature @@ -235,11 +237,13 @@ jdk.internal.org.objectweb.asm.tree jdk.jfr + java.instrument jdk.internal.org.objectweb.asm.util jdk.jfr jdk.scripting.nashorn + java.instrument sun.misc @@ -266,6 +270,7 @@ jdk.security.auth jdk.security.jgss jdk.snmp + java.instrument sun.net.dns @@ -310,6 +315,7 @@ java.sql java.sql.rowset jdk.scripting.nashorn + java.instrument sun.reflect.annotation @@ -766,6 +772,10 @@ java.lang.instrument + + jdk.internal.instrumentation + jdk.jfr + java.logging @@ -781,9 +791,6 @@ java.naming java.rmi - com.sun.management - - java.lang.management @@ -816,9 +823,11 @@ sun.management jdk.jconsole + jdk.management sun.management.spi + jdk.management jdk.management.cmm @@ -1664,6 +1673,7 @@ java.rmi jdk.attach jdk.jvmstat + jdk.management com.sun.tools.jconsole @@ -1716,6 +1726,14 @@ java.base + jdk.management + java.base + java.management + + com.sun.management + + + jdk.naming.dns java.base java.naming diff -r 989253a902c3 -r f86dca6d2737 test/lib/sun/hotspot/WhiteBox.java --- a/test/lib/sun/hotspot/WhiteBox.java Wed Jul 05 20:31:05 2017 +0200 +++ b/test/lib/sun/hotspot/WhiteBox.java Fri May 01 03:56:01 2015 -0700 @@ -32,6 +32,7 @@ import java.util.function.Function; import java.util.stream.Stream; import java.security.BasicPermission; +import java.util.Objects; import sun.hotspot.parser.DiagnosticCommand; @@ -74,11 +75,27 @@ public native void printHeapSizes(); // Memory - public native long getObjectAddress(Object o); + private native long getObjectAddress0(Object o); + public long getObjectAddress(Object o) { + Objects.requireNonNull(o); + return getObjectAddress0(o); + } + public native int getHeapOopSize(); public native int getVMPageSize(); - public native boolean isObjectInOldGen(Object o); - public native long getObjectSize(Object o); + public native long getVMLargePageSize(); + + private native boolean isObjectInOldGen0(Object o); + public boolean isObjectInOldGen(Object o) { + Objects.requireNonNull(o); + return isObjectInOldGen0(o); + } + + private native long getObjectSize0(Object o); + public long getObjectSize(Object o) { + Objects.requireNonNull(o); + return getObjectSize0(o); + } // Runtime // Make sure class name is in the correct format @@ -86,21 +103,45 @@ return isClassAlive0(name.replace('.', '/')); } private native boolean isClassAlive0(String name); - public native boolean isMonitorInflated(Object obj); + + private native boolean isMonitorInflated0(Object obj); + public boolean isMonitorInflated(Object obj) { + Objects.requireNonNull(obj); + return isMonitorInflated0(obj); + } + public native void forceSafepoint(); // JVMTI - public native void addToBootstrapClassLoaderSearch(String segment); - public native void addToSystemClassLoaderSearch(String segment); + private native void addToBootstrapClassLoaderSearch0(String segment); + public void addToBootstrapClassLoaderSearch(String segment){ + Objects.requireNonNull(segment); + addToBootstrapClassLoaderSearch0(segment); + } + + private native void addToSystemClassLoaderSearch0(String segment); + public void addToSystemClassLoaderSearch(String segment) { + Objects.requireNonNull(segment); + addToSystemClassLoaderSearch0(segment); + } // G1 public native boolean g1InConcurrentMark(); - public native boolean g1IsHumongous(Object o); + private native boolean g1IsHumongous0(Object o); + public boolean g1IsHumongous(Object o) { + Objects.requireNonNull(o); + return g1IsHumongous0(o); + } + public native long g1NumMaxRegions(); public native long g1NumFreeRegions(); public native int g1RegionSize(); public native MemoryUsage g1AuxiliaryMemoryUsage(); - public native Object[] parseCommandLine(String commandline, char delim, DiagnosticCommand[] args); + private native Object[] parseCommandLine0(String commandline, char delim, DiagnosticCommand[] args); + public Object[] parseCommandLine(String commandline, char delim, DiagnosticCommand[] args) { + Objects.requireNonNull(args); + return parseCommandLine0(commandline, delim, args); + } // NMT public native long NMTMalloc(long size); @@ -119,45 +160,93 @@ public boolean isMethodCompiled(Executable method) { return isMethodCompiled(method, false /*not osr*/); } - public native boolean isMethodCompiled(Executable method, boolean isOsr); + private native boolean isMethodCompiled0(Executable method, boolean isOsr); + public boolean isMethodCompiled(Executable method, boolean isOsr){ + Objects.requireNonNull(method); + return isMethodCompiled0(method, isOsr); + } public boolean isMethodCompilable(Executable method) { return isMethodCompilable(method, -1 /*any*/); } public boolean isMethodCompilable(Executable method, int compLevel) { return isMethodCompilable(method, compLevel, false /*not osr*/); } - public native boolean isMethodCompilable(Executable method, int compLevel, boolean isOsr); - public native boolean isMethodQueuedForCompilation(Executable method); + private native boolean isMethodCompilable0(Executable method, int compLevel, boolean isOsr); + public boolean isMethodCompilable(Executable method, int compLevel, boolean isOsr) { + Objects.requireNonNull(method); + return isMethodCompilable0(method, compLevel, isOsr); + } + private native boolean isMethodQueuedForCompilation0(Executable method); + public boolean isMethodQueuedForCompilation(Executable method) { + Objects.requireNonNull(method); + return isMethodQueuedForCompilation0(method); + } public int deoptimizeMethod(Executable method) { return deoptimizeMethod(method, false /*not osr*/); } - public native int deoptimizeMethod(Executable method, boolean isOsr); + private native int deoptimizeMethod0(Executable method, boolean isOsr); + public int deoptimizeMethod(Executable method, boolean isOsr) { + Objects.requireNonNull(method); + return deoptimizeMethod0(method, isOsr); + } public void makeMethodNotCompilable(Executable method) { makeMethodNotCompilable(method, -1 /*any*/); } public void makeMethodNotCompilable(Executable method, int compLevel) { makeMethodNotCompilable(method, compLevel, false /*not osr*/); } - public native void makeMethodNotCompilable(Executable method, int compLevel, boolean isOsr); + private native void makeMethodNotCompilable0(Executable method, int compLevel, boolean isOsr); + public void makeMethodNotCompilable(Executable method, int compLevel, boolean isOsr) { + Objects.requireNonNull(method); + makeMethodNotCompilable0(method, compLevel, isOsr); + } public int getMethodCompilationLevel(Executable method) { return getMethodCompilationLevel(method, false /*not ost*/); } - public native int getMethodCompilationLevel(Executable method, boolean isOsr); - public native boolean testSetDontInlineMethod(Executable method, boolean value); + private native int getMethodCompilationLevel0(Executable method, boolean isOsr); + public int getMethodCompilationLevel(Executable method, boolean isOsr) { + Objects.requireNonNull(method); + return getMethodCompilationLevel0(method, isOsr); + } + private native boolean testSetDontInlineMethod0(Executable method, boolean value); + public boolean testSetDontInlineMethod(Executable method, boolean value) { + Objects.requireNonNull(method); + return testSetDontInlineMethod0(method, value); + } public int getCompileQueuesSize() { return getCompileQueueSize(-1 /*any*/); } public native int getCompileQueueSize(int compLevel); - public native boolean testSetForceInlineMethod(Executable method, boolean value); + private native boolean testSetForceInlineMethod0(Executable method, boolean value); + public boolean testSetForceInlineMethod(Executable method, boolean value) { + Objects.requireNonNull(method); + return testSetForceInlineMethod0(method, value); + } public boolean enqueueMethodForCompilation(Executable method, int compLevel) { return enqueueMethodForCompilation(method, compLevel, -1 /*InvocationEntryBci*/); } - public native boolean enqueueMethodForCompilation(Executable method, int compLevel, int entry_bci); - public native void clearMethodState(Executable method); + private native boolean enqueueMethodForCompilation0(Executable method, int compLevel, int entry_bci); + public boolean enqueueMethodForCompilation(Executable method, int compLevel, int entry_bci) { + Objects.requireNonNull(method); + return enqueueMethodForCompilation0(method, compLevel, entry_bci); + } + private native void clearMethodState0(Executable method); + public void clearMethodState(Executable method) { + Objects.requireNonNull(method); + clearMethodState0(method); + } public native void lockCompilation(); public native void unlockCompilation(); - public native int getMethodEntryBci(Executable method); - public native Object[] getNMethod(Executable method, boolean isOsr); + private native int getMethodEntryBci0(Executable method); + public int getMethodEntryBci(Executable method) { + Objects.requireNonNull(method); + return getMethodEntryBci0(method); + } + private native Object[] getNMethod0(Executable method, boolean isOsr); + public Object[] getNMethod(Executable method, boolean isOsr) { + Objects.requireNonNull(method); + return getNMethod0(method, isOsr); + } public native long allocateCodeBlob(int size, int type); public long allocateCodeBlob(long size, int type) { int intSize = (int) size; @@ -168,14 +257,7 @@ return allocateCodeBlob( intSize, type); } public native void freeCodeBlob(long addr); - public void forceNMethodSweep() { - try { - forceNMethodSweep0().join(); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } - } - public native Thread forceNMethodSweep0(); + public native void forceNMethodSweep(); public native Object[] getCodeHeapEntries(int type); public native int getCompilationActivityMode(); public native Object[] getCodeBlob(long addr); @@ -213,7 +295,11 @@ // Native extensions public native long getHeapUsageForContext(int context); public native long getHeapRegionCountForContext(int context); - public native int getContextForObject(Object obj); + private native int getContextForObject0(Object obj); + public int getContextForObject(Object obj) { + Objects.requireNonNull(obj); + return getContextForObject0(obj); + } public native void printRegionInfo(int context); // VM flags