--- a/common/autoconf/configure.ac Fri Sep 01 14:13:05 2017 +0000
+++ b/common/autoconf/configure.ac Sun Sep 03 14:19:44 2017 +0200
@@ -209,6 +209,7 @@
# Need toolchain to setup dtrace
HOTSPOT_SETUP_DTRACE
HOTSPOT_ENABLE_DISABLE_AOT
+HOTSPOT_ENABLE_DISABLE_CDS
HOTSPOT_ENABLE_DISABLE_GTEST
###############################################################################
--- a/common/autoconf/generated-configure.sh Fri Sep 01 14:13:05 2017 +0000
+++ b/common/autoconf/generated-configure.sh Sun Sep 03 14:19:44 2017 +0200
@@ -702,6 +702,7 @@
FIXPATH_DETACH_FLAG
FIXPATH
BUILD_GTEST
+ENABLE_CDS
ENABLE_AOT
GCOV_ENABLED
ZIP_EXTERNAL_DEBUG_SYMBOLS
@@ -1191,6 +1192,7 @@
enable_native_coverage
enable_dtrace
enable_aot
+enable_cds
enable_hotspot_gtest
with_stdc__lib
with_msvcr_dll
@@ -1999,6 +2001,8 @@
enable ahead of time compilation feature. Default is
auto, where aot is enabled if all dependencies are
present.
+ --enable-cds[=yes/no] enable class data sharing feature in non-minimal VM.
+ Default is yes.
--disable-hotspot-gtest Disables building of the Hotspot unit tests
--disable-freetype-bundling
disable bundling of the freetype library with the
@@ -2016,7 +2020,8 @@
--disable-generate-classlist
forces enabling or disabling of the generation of a
CDS classlist at build time. Default is to generate
- it when either the server or client JVMs are built.
+ it when either the server or client JVMs are built
+ and enable-cds is true.
--enable-sjavac use sjavac to do fast incremental compiles
[disabled]
--disable-javac-server disable javac server [enabled]
@@ -4295,7 +4300,7 @@
# All valid JVM features, regardless of platform
VALID_JVM_FEATURES="compiler1 compiler2 zero shark minimal dtrace jvmti jvmci \
- graal fprof vm-structs jni-check services management all-gcs nmt cds \
+ graal vm-structs jni-check services management all-gcs nmt cds \
static-build link-time-opt aot"
# All valid JVM variants
@@ -4345,6 +4350,11 @@
#
+################################################################################
+# Allow to disable CDS
+#
+
+
###############################################################################
# Set up all JVM features for each JVM variant.
#
@@ -5151,7 +5161,7 @@
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1504187184
+DATE_WHEN_GENERATED=1504441177
###############################################################################
#
@@ -54216,6 +54226,23 @@
+ # Check whether --enable-cds was given.
+if test "${enable_cds+set}" = set; then :
+ enableval=$enable_cds;
+fi
+
+
+ if test "x$enable_cds" = "x" || test "x$enable_cds" = "xyes"; then
+ ENABLE_CDS="true"
+ elif test "x$enable_cds" = "xno"; then
+ ENABLE_CDS="false"
+ else
+ as_fn_error $? "Invalid value for --enable-cds: $enable_cds" "$LINENO" 5
+ fi
+
+
+
+
# Check whether --enable-hotspot-gtest was given.
if test "${enable_hotspot_gtest+set}" = set; then :
enableval=$enable_hotspot_gtest;
@@ -65810,8 +65837,12 @@
fi
INCLUDE_GRAAL="true"
else
- # By default enable graal build where AOT is available
- if test "x$ENABLE_AOT" = "xtrue"; then
+ # By default enable graal build on linux-x64 or where AOT is available.
+ # graal build requires jvmci.
+ if test "x$JVM_FEATURES_jvmci" = "xjvmci" && \
+ (test "x$OPENJDK_TARGET_CPU" = "xx86_64" && \
+ test "x$OPENJDK_TARGET_OS" = "xlinux" || \
+ test "x$ENABLE_AOT" = "xtrue") ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
JVM_FEATURES_graal="graal"
@@ -65856,7 +65887,10 @@
fi
# All variants but minimal (and custom) get these features
- NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jvmti fprof vm-structs jni-check services management all-gcs nmt cds"
+ NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jvmti vm-structs jni-check services management all-gcs nmt"
+ if test "x$ENABLE_CDS" = "xtrue"; then
+ NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES cds"
+ fi
# Enable features depending on variant.
JVM_FEATURES_server="compiler1 compiler2 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci $JVM_FEATURES_aot $JVM_FEATURES_graal"
@@ -65960,7 +65994,7 @@
# Check if it's likely that it's possible to generate the classlist. Depending
# on exact jvm configuration it could be possible anyway.
- if [[ " $JVM_VARIANTS " =~ " server " ]] || [[ " $JVM_VARIANTS " =~ " client " ]] ; then
+ if test "x$ENABLE_CDS" = "xtrue" && ( [[ " $JVM_VARIANTS " =~ " server " ]] || [[ " $JVM_VARIANTS " =~ " client " ]] ); then
ENABLE_GENERATE_CLASSLIST_POSSIBLE="true"
else
ENABLE_GENERATE_CLASSLIST_POSSIBLE="false"
@@ -65973,8 +66007,8 @@
$as_echo "yes, forced" >&6; }
ENABLE_GENERATE_CLASSLIST="true"
if test "x$ENABLE_GENERATE_CLASSLIST_POSSIBLE" = "xfalse"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Generation of classlist might not be possible with JVM Variants $JVM_VARIANTS" >&5
-$as_echo "$as_me: WARNING: Generation of classlist might not be possible with JVM Variants $JVM_VARIANTS" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Generation of classlist might not be possible with JVM Variants $JVM_VARIANTS and enable-cds=$ENABLE_CDS" >&5
+$as_echo "$as_me: WARNING: Generation of classlist might not be possible with JVM Variants $JVM_VARIANTS and enable-cds=$ENABLE_CDS" >&2;}
fi
elif test "x$enable_generate_classlist" = "xno"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, forced" >&5
--- a/common/autoconf/hotspot.m4 Fri Sep 01 14:13:05 2017 +0000
+++ b/common/autoconf/hotspot.m4 Sun Sep 03 14:19:44 2017 +0200
@@ -25,7 +25,7 @@
# All valid JVM features, regardless of platform
VALID_JVM_FEATURES="compiler1 compiler2 zero shark minimal dtrace jvmti jvmci \
- graal fprof vm-structs jni-check services management all-gcs nmt cds \
+ graal vm-structs jni-check services management all-gcs nmt cds \
static-build link-time-opt aot"
# All valid JVM variants
@@ -240,6 +240,25 @@
AC_SUBST(ENABLE_AOT)
])
+################################################################################
+# Allow to disable CDS
+#
+AC_DEFUN_ONCE([HOTSPOT_ENABLE_DISABLE_CDS],
+[
+ AC_ARG_ENABLE([cds], [AS_HELP_STRING([--enable-cds@<:@=yes/no@:>@],
+ [enable class data sharing feature in non-minimal VM. Default is yes.])])
+
+ if test "x$enable_cds" = "x" || test "x$enable_cds" = "xyes"; then
+ ENABLE_CDS="true"
+ elif test "x$enable_cds" = "xno"; then
+ ENABLE_CDS="false"
+ else
+ AC_MSG_ERROR([Invalid value for --enable-cds: $enable_cds])
+ fi
+
+ AC_SUBST(ENABLE_CDS)
+])
+
###############################################################################
# Set up all JVM features for each JVM variant.
#
@@ -335,8 +354,12 @@
fi
INCLUDE_GRAAL="true"
else
- # By default enable graal build where AOT is available
- if test "x$ENABLE_AOT" = "xtrue"; then
+ # By default enable graal build on linux-x64 or where AOT is available.
+ # graal build requires jvmci.
+ if test "x$JVM_FEATURES_jvmci" = "xjvmci" && \
+ (test "x$OPENJDK_TARGET_CPU" = "xx86_64" && \
+ test "x$OPENJDK_TARGET_OS" = "xlinux" || \
+ test "x$ENABLE_AOT" = "xtrue") ; then
AC_MSG_RESULT([yes])
JVM_FEATURES_graal="graal"
INCLUDE_GRAAL="true"
@@ -374,7 +397,10 @@
fi
# All variants but minimal (and custom) get these features
- NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jvmti fprof vm-structs jni-check services management all-gcs nmt cds"
+ NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jvmti vm-structs jni-check services management all-gcs nmt"
+ if test "x$ENABLE_CDS" = "xtrue"; then
+ NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES cds"
+ fi
# Enable features depending on variant.
JVM_FEATURES_server="compiler1 compiler2 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci $JVM_FEATURES_aot $JVM_FEATURES_graal"
--- a/common/autoconf/jdk-options.m4 Fri Sep 01 14:13:05 2017 +0000
+++ b/common/autoconf/jdk-options.m4 Sun Sep 03 14:19:44 2017 +0200
@@ -496,11 +496,12 @@
[
AC_ARG_ENABLE([generate-classlist], [AS_HELP_STRING([--disable-generate-classlist],
[forces enabling or disabling of the generation of a CDS classlist at build time.
- Default is to generate it when either the server or client JVMs are built.])])
+ Default is to generate it when either the server or client JVMs are built and
+ enable-cds is true.])])
# Check if it's likely that it's possible to generate the classlist. Depending
# on exact jvm configuration it could be possible anyway.
- if HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client); then
+ if test "x$ENABLE_CDS" = "xtrue" && (HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client)); then
ENABLE_GENERATE_CLASSLIST_POSSIBLE="true"
else
ENABLE_GENERATE_CLASSLIST_POSSIBLE="false"
@@ -511,7 +512,7 @@
AC_MSG_RESULT([yes, forced])
ENABLE_GENERATE_CLASSLIST="true"
if test "x$ENABLE_GENERATE_CLASSLIST_POSSIBLE" = "xfalse"; then
- AC_MSG_WARN([Generation of classlist might not be possible with JVM Variants $JVM_VARIANTS])
+ AC_MSG_WARN([Generation of classlist might not be possible with JVM Variants $JVM_VARIANTS and enable-cds=$ENABLE_CDS])
fi
elif test "x$enable_generate_classlist" = "xno"; then
AC_MSG_RESULT([no, forced])
--- a/make/RunTests.gmk Fri Sep 01 14:13:05 2017 +0000
+++ b/make/RunTests.gmk Sun Sep 03 14:19:44 2017 +0200
@@ -328,9 +328,9 @@
$1_JTREG_JOBS := 50
endif
- # Make sure MaxRAMFraction is high enough to not cause OOM or swapping since
+ # Make sure MaxRAMPercentage is high enough to not cause OOM or swapping since
# we may end up with a lot of JVM's
- $1_JTREG_MAX_RAM_FRACTION := $$(shell $$(EXPR) $$($1_JTREG_JOBS) \* 4)
+ $1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
JTREG_TIMEOUT ?= 4
JTREG_VERBOSE ?= fail,error,summary
@@ -344,7 +344,7 @@
$1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
-verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
-concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT) \
- -vmoption:-XX:MaxRAMFraction=$$($1_JTREG_MAX_RAM_FRACTION)
+ -vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE)
$1_JTREG_BASIC_OPTIONS += -automatic -keywords:\!ignore -ignore:quiet