Wed, 22 May 2013 17:26:31 +0200
8014514: Fix jvm args for sjavac
Reviewed-by: tbell
1.1 --- a/common/autoconf/basics.m4 Wed May 22 13:49:12 2013 +0100 1.2 +++ b/common/autoconf/basics.m4 Wed May 22 17:26:31 2013 +0200 1.3 @@ -23,14 +23,23 @@ 1.4 # questions. 1.5 # 1.6 1.7 +# Test if $1 is a valid argument to $3 (often is $JAVA passed as $3) 1.8 +# If so, then append $1 to $2\ 1.9 +# Also set JVM_ARG_OK to true/false depending on outcome. 1.10 AC_DEFUN([ADD_JVM_ARG_IF_OK], 1.11 [ 1.12 - # Test if $1 is a valid argument to $3 (often is $JAVA passed as $3) 1.13 - # If so, then append $1 to $2 1.14 - FOUND_WARN=`$3 $1 -version 2>&1 | grep -i warn` 1.15 - FOUND_VERSION=`$3 $1 -version 2>&1 | grep " version \""` 1.16 + $ECHO "Check if jvm arg is ok: $1" >&AS_MESSAGE_LOG_FD 1.17 + $ECHO "Command: $3 $1 -version" >&AS_MESSAGE_LOG_FD 1.18 + OUTPUT=`$3 $1 -version 2>&1` 1.19 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 1.20 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 1.21 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 1.22 $2="[$]$2 $1" 1.23 + JVM_ARG_OK=true 1.24 + else 1.25 + $ECHO "Arg failed:" >&AS_MESSAGE_LOG_FD 1.26 + $ECHO "$OUTPUT" >&AS_MESSAGE_LOG_FD 1.27 + JVM_ARG_OK=false 1.28 fi 1.29 ]) 1.30
2.1 --- a/common/autoconf/build-performance.m4 Wed May 22 13:49:12 2013 +0100 2.2 +++ b/common/autoconf/build-performance.m4 Wed May 22 17:26:31 2013 +0200 2.3 @@ -278,60 +278,37 @@ 2.4 fi 2.5 AC_SUBST(SJAVAC_SERVER_JAVA) 2.6 2.7 -AC_ARG_WITH(sjavac-server-cores, [AS_HELP_STRING([--with-sjavac-server-cores], 2.8 - [use at most this number of concurrent threads on the sjavac server @<:@probed@:>@])]) 2.9 -if test "x$with_sjavac_server_cores" != x; then 2.10 - SJAVAC_SERVER_CORES="$with_sjavac_server_cores" 2.11 -else 2.12 - if test "$NUM_CORES" -gt 16; then 2.13 - # We set this arbitrary limit because we want to limit the heap 2.14 - # size of the javac server. 2.15 - # In the future we will make the javac compilers in the server 2.16 - # share more and more state, thus enabling us to use more and 2.17 - # more concurrent threads in the server. 2.18 - SJAVAC_SERVER_CORES="16" 2.19 - else 2.20 - SJAVAC_SERVER_CORES="$NUM_CORES" 2.21 +if test "$MEMORY_SIZE" -gt "2500"; then 2.22 + ADD_JVM_ARG_IF_OK([-d64],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.23 + if test "$JVM_ARG_OK" = true; then 2.24 + JVM_64BIT=true 2.25 + JVM_ARG_OK=false 2.26 + fi 2.27 fi 2.28 2.29 +if test "$JVM_64BIT" = true; then 2.30 if test "$MEMORY_SIZE" -gt "17000"; then 2.31 - MAX_HEAP_MEM=10000 2.32 - ADD_JVM_ARG_IF_OK([-d64],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.33 ADD_JVM_ARG_IF_OK([-Xms10G -Xmx10G],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.34 - elif test "$MEMORY_SIZE" -gt "10000"; then 2.35 - MAX_HEAP_MEM=6000 2.36 - ADD_JVM_ARG_IF_OK([-d64],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.37 + fi 2.38 + if test "$MEMORY_SIZE" -gt "10000" && test "$JVM_ARG_OK" = false; then 2.39 ADD_JVM_ARG_IF_OK([-Xms6G -Xmx6G],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.40 - elif test "$MEMORY_SIZE" -gt "5000"; then 2.41 - MAX_HEAP_MEM=3000 2.42 - ADD_JVM_ARG_IF_OK([-d64],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.43 + fi 2.44 + if test "$MEMORY_SIZE" -gt "5000" && test "$JVM_ARG_OK" = false; then 2.45 ADD_JVM_ARG_IF_OK([-Xms1G -Xmx3G],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.46 - elif test "$MEMORY_SIZE" -gt "3800"; then 2.47 - MAX_HEAP_MEM=2500 2.48 + fi 2.49 + if test "$MEMORY_SIZE" -gt "3800" && test "$JVM_ARG_OK" = false; then 2.50 ADD_JVM_ARG_IF_OK([-Xms1G -Xmx2500M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.51 - elif test "$MEMORY_SIZE" -gt "1900"; then 2.52 - MAX_HEAP_MEM=1200 2.53 - ADD_JVM_ARG_IF_OK([-Xms700M -Xmx1400M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.54 - elif test "$MEMORY_SIZE" -gt "1000"; then 2.55 - MAX_HEAP_MEM=900 2.56 - ADD_JVM_ARG_IF_OK([-Xms400M -Xmx1100M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.57 - else 2.58 - MAX_HEAP_MEM=512 2.59 - ADD_JVM_ARG_IF_OK([-Xms256M -Xmx512M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.60 fi 2.61 - 2.62 - ADD_JVM_ARG_IF_OK([-XX:PermSize=32m],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.63 - ADD_JVM_ARG_IF_OK([-XX:MaxPermSize=160m],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.64 - ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.65 - 2.66 - MAX_COMPILERS_IN_HEAP=`expr $MAX_HEAP_MEM / 501` 2.67 - if test "$SJAVAC_SERVER_CORES" -gt "$MAX_COMPILERS_IN_HEAP"; then 2.68 - AC_MSG_CHECKING([if number of server cores must be reduced]) 2.69 - SJAVAC_SERVER_CORES="$MAX_COMPILERS_IN_HEAP" 2.70 - AC_MSG_RESULT([yes, to $SJAVAC_SERVER_CORES with max heap size $MAX_HEAP_MEM MB]) 2.71 - fi 2.72 -fi 2.73 -AC_SUBST(SJAVAC_SERVER_CORES) 2.74 +fi 2.75 +if test "$MEMORY_SIZE" -gt "2500" && test "$JVM_ARG_OK" = false; then 2.76 + ADD_JVM_ARG_IF_OK([-Xms1000M -Xmx1500M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.77 +fi 2.78 +if test "$MEMORY_SIZE" -gt "1000" && test "$JVM_ARG_OK" = false; then 2.79 + ADD_JVM_ARG_IF_OK([-Xms400M -Xmx1100M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.80 +fi 2.81 +if test "$JVM_ARG_OK" = false; then 2.82 + ADD_JVM_ARG_IF_OK([-Xms256M -Xmx512M],SJAVAC_SERVER_JAVA,[$SJAVAC_SERVER_JAVA]) 2.83 +fi 2.84 2.85 AC_MSG_CHECKING([whether to use sjavac]) 2.86 AC_ARG_ENABLE([sjavac], [AS_HELP_STRING([--enable-sjavac],
3.1 --- a/common/autoconf/generated-configure.sh Wed May 22 13:49:12 2013 +0100 3.2 +++ b/common/autoconf/generated-configure.sh Wed May 22 17:26:31 2013 +0200 3.3 @@ -599,7 +599,6 @@ 3.4 USE_PRECOMPILED_HEADER 3.5 SJAVAC_SERVER_DIR 3.6 ENABLE_SJAVAC 3.7 -SJAVAC_SERVER_CORES 3.8 SJAVAC_SERVER_JAVA 3.9 JOBS 3.10 MEMORY_SIZE 3.11 @@ -1025,7 +1024,6 @@ 3.12 with_memory_size 3.13 with_jobs 3.14 with_sjavac_server_java 3.15 -with_sjavac_server_cores 3.16 enable_sjavac 3.17 enable_precompiled_headers 3.18 enable_ccache 3.19 @@ -1796,9 +1794,6 @@ 3.20 --with-sjavac-server-java 3.21 use this java binary for running the sjavac 3.22 background server [Boot JDK java] 3.23 - --with-sjavac-server-cores 3.24 - use at most this number of concurrent threads on the 3.25 - sjavac server [probed] 3.26 --with-ccache-dir where to store ccache files [~/.ccache] 3.27 3.28 Some influential environment variables: 3.29 @@ -3077,6 +3072,9 @@ 3.30 # questions. 3.31 # 3.32 3.33 +# Test if $1 is a valid argument to $3 (often is $JAVA passed as $3) 3.34 +# If so, then append $1 to $2\ 3.35 +# Also set JVM_ARG_OK to true/false depending on outcome. 3.36 3.37 3.38 # This will make sure the given variable points to a full and proper 3.39 @@ -3775,7 +3773,7 @@ 3.40 #CUSTOM_AUTOCONF_INCLUDE 3.41 3.42 # Do not change or remove the following line, it is needed for consistency checks: 3.43 -DATE_WHEN_GENERATED=1367502949 3.44 +DATE_WHEN_GENERATED=1369236348 3.45 3.46 ############################################################################### 3.47 # 3.48 @@ -15705,73 +15703,115 @@ 3.49 3.50 # Minimum amount of heap memory. 3.51 3.52 - # Test if -Xms64M is a valid argument to $JAVA (often is $JAVA passed as $JAVA) 3.53 - # If so, then append -Xms64M to boot_jdk_jvmargs 3.54 - FOUND_WARN=`$JAVA -Xms64M -version 2>&1 | grep -i warn` 3.55 - FOUND_VERSION=`$JAVA -Xms64M -version 2>&1 | grep " version \""` 3.56 + $ECHO "Check if jvm arg is ok: -Xms64M" >&5 3.57 + $ECHO "Command: $JAVA -Xms64M -version" >&5 3.58 + OUTPUT=`$JAVA -Xms64M -version 2>&1` 3.59 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.60 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.61 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.62 boot_jdk_jvmargs="$boot_jdk_jvmargs -Xms64M" 3.63 + JVM_ARG_OK=true 3.64 + else 3.65 + $ECHO "Arg failed:" >&5 3.66 + $ECHO "$OUTPUT" >&5 3.67 + JVM_ARG_OK=false 3.68 fi 3.69 3.70 if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then 3.71 # Why does macosx need more heap? Its the huge JDK batch. 3.72 3.73 - # Test if -Xmx1600M is a valid argument to $JAVA (often is $JAVA passed as $JAVA) 3.74 - # If so, then append -Xmx1600M to boot_jdk_jvmargs 3.75 - FOUND_WARN=`$JAVA -Xmx1600M -version 2>&1 | grep -i warn` 3.76 - FOUND_VERSION=`$JAVA -Xmx1600M -version 2>&1 | grep " version \""` 3.77 + $ECHO "Check if jvm arg is ok: -Xmx1600M" >&5 3.78 + $ECHO "Command: $JAVA -Xmx1600M -version" >&5 3.79 + OUTPUT=`$JAVA -Xmx1600M -version 2>&1` 3.80 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.81 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.82 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.83 boot_jdk_jvmargs="$boot_jdk_jvmargs -Xmx1600M" 3.84 - fi 3.85 - 3.86 - else 3.87 - 3.88 - # Test if -Xmx1100M is a valid argument to $JAVA (often is $JAVA passed as $JAVA) 3.89 - # If so, then append -Xmx1100M to boot_jdk_jvmargs 3.90 - FOUND_WARN=`$JAVA -Xmx1100M -version 2>&1 | grep -i warn` 3.91 - FOUND_VERSION=`$JAVA -Xmx1100M -version 2>&1 | grep " version \""` 3.92 + JVM_ARG_OK=true 3.93 + else 3.94 + $ECHO "Arg failed:" >&5 3.95 + $ECHO "$OUTPUT" >&5 3.96 + JVM_ARG_OK=false 3.97 + fi 3.98 + 3.99 + else 3.100 + 3.101 + $ECHO "Check if jvm arg is ok: -Xmx1100M" >&5 3.102 + $ECHO "Command: $JAVA -Xmx1100M -version" >&5 3.103 + OUTPUT=`$JAVA -Xmx1100M -version 2>&1` 3.104 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.105 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.106 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.107 boot_jdk_jvmargs="$boot_jdk_jvmargs -Xmx1100M" 3.108 + JVM_ARG_OK=true 3.109 + else 3.110 + $ECHO "Arg failed:" >&5 3.111 + $ECHO "$OUTPUT" >&5 3.112 + JVM_ARG_OK=false 3.113 fi 3.114 3.115 fi 3.116 # When is adding -client something that speeds up the JVM? 3.117 # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA]) 3.118 3.119 - # Test if -XX:PermSize=32m is a valid argument to $JAVA (often is $JAVA passed as $JAVA) 3.120 - # If so, then append -XX:PermSize=32m to boot_jdk_jvmargs 3.121 - FOUND_WARN=`$JAVA -XX:PermSize=32m -version 2>&1 | grep -i warn` 3.122 - FOUND_VERSION=`$JAVA -XX:PermSize=32m -version 2>&1 | grep " version \""` 3.123 + $ECHO "Check if jvm arg is ok: -XX:PermSize=32m" >&5 3.124 + $ECHO "Command: $JAVA -XX:PermSize=32m -version" >&5 3.125 + OUTPUT=`$JAVA -XX:PermSize=32m -version 2>&1` 3.126 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.127 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.128 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.129 boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:PermSize=32m" 3.130 - fi 3.131 - 3.132 - 3.133 - # Test if -XX:MaxPermSize=160m is a valid argument to $JAVA (often is $JAVA passed as $JAVA) 3.134 - # If so, then append -XX:MaxPermSize=160m to boot_jdk_jvmargs 3.135 - FOUND_WARN=`$JAVA -XX:MaxPermSize=160m -version 2>&1 | grep -i warn` 3.136 - FOUND_VERSION=`$JAVA -XX:MaxPermSize=160m -version 2>&1 | grep " version \""` 3.137 + JVM_ARG_OK=true 3.138 + else 3.139 + $ECHO "Arg failed:" >&5 3.140 + $ECHO "$OUTPUT" >&5 3.141 + JVM_ARG_OK=false 3.142 + fi 3.143 + 3.144 + 3.145 + $ECHO "Check if jvm arg is ok: -XX:MaxPermSize=160m" >&5 3.146 + $ECHO "Command: $JAVA -XX:MaxPermSize=160m -version" >&5 3.147 + OUTPUT=`$JAVA -XX:MaxPermSize=160m -version 2>&1` 3.148 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.149 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.150 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.151 boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:MaxPermSize=160m" 3.152 - fi 3.153 - 3.154 - 3.155 - # Test if -XX:ThreadStackSize=$STACK_SIZE is a valid argument to $JAVA (often is $JAVA passed as $JAVA) 3.156 - # If so, then append -XX:ThreadStackSize=$STACK_SIZE to boot_jdk_jvmargs 3.157 - FOUND_WARN=`$JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1 | grep -i warn` 3.158 - FOUND_VERSION=`$JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1 | grep " version \""` 3.159 + JVM_ARG_OK=true 3.160 + else 3.161 + $ECHO "Arg failed:" >&5 3.162 + $ECHO "$OUTPUT" >&5 3.163 + JVM_ARG_OK=false 3.164 + fi 3.165 + 3.166 + 3.167 + $ECHO "Check if jvm arg is ok: -XX:ThreadStackSize=$STACK_SIZE" >&5 3.168 + $ECHO "Command: $JAVA -XX:ThreadStackSize=$STACK_SIZE -version" >&5 3.169 + OUTPUT=`$JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1` 3.170 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.171 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.172 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.173 boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:ThreadStackSize=$STACK_SIZE" 3.174 + JVM_ARG_OK=true 3.175 + else 3.176 + $ECHO "Arg failed:" >&5 3.177 + $ECHO "$OUTPUT" >&5 3.178 + JVM_ARG_OK=false 3.179 fi 3.180 3.181 # Disable special log output when a debug build is used as Boot JDK... 3.182 3.183 - # Test if -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput is a valid argument to $JAVA (often is $JAVA passed as $JAVA) 3.184 - # If so, then append -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput to boot_jdk_jvmargs 3.185 - FOUND_WARN=`$JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version 2>&1 | grep -i warn` 3.186 - FOUND_VERSION=`$JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version 2>&1 | grep " version \""` 3.187 + $ECHO "Check if jvm arg is ok: -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput" >&5 3.188 + $ECHO "Command: $JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version" >&5 3.189 + OUTPUT=`$JAVA -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput -version 2>&1` 3.190 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.191 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.192 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.193 boot_jdk_jvmargs="$boot_jdk_jvmargs -XX:-PrintVMOptions -XX:-UnlockDiagnosticVMOptions -XX:-LogVMOutput" 3.194 + JVM_ARG_OK=true 3.195 + else 3.196 + $ECHO "Arg failed:" >&5 3.197 + $ECHO "$OUTPUT" >&5 3.198 + JVM_ARG_OK=false 3.199 fi 3.200 3.201 fi 3.202 @@ -32664,192 +32704,183 @@ 3.203 SJAVAC_SERVER_JAVA="" 3.204 # Hotspot specific options. 3.205 3.206 - # Test if -verbosegc is a valid argument to $JAVA (often is $JAVA passed as $JAVA) 3.207 - # If so, then append -verbosegc to SJAVAC_SERVER_JAVA 3.208 - FOUND_WARN=`$JAVA -verbosegc -version 2>&1 | grep -i warn` 3.209 - FOUND_VERSION=`$JAVA -verbosegc -version 2>&1 | grep " version \""` 3.210 + $ECHO "Check if jvm arg is ok: -verbosegc" >&5 3.211 + $ECHO "Command: $JAVA -verbosegc -version" >&5 3.212 + OUTPUT=`$JAVA -verbosegc -version 2>&1` 3.213 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.214 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.215 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.216 SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -verbosegc" 3.217 + JVM_ARG_OK=true 3.218 + else 3.219 + $ECHO "Arg failed:" >&5 3.220 + $ECHO "$OUTPUT" >&5 3.221 + JVM_ARG_OK=false 3.222 fi 3.223 3.224 # JRockit specific options. 3.225 3.226 - # Test if -Xverbose:gc is a valid argument to $JAVA (often is $JAVA passed as $JAVA) 3.227 - # If so, then append -Xverbose:gc to SJAVAC_SERVER_JAVA 3.228 - FOUND_WARN=`$JAVA -Xverbose:gc -version 2>&1 | grep -i warn` 3.229 - FOUND_VERSION=`$JAVA -Xverbose:gc -version 2>&1 | grep " version \""` 3.230 + $ECHO "Check if jvm arg is ok: -Xverbose:gc" >&5 3.231 + $ECHO "Command: $JAVA -Xverbose:gc -version" >&5 3.232 + OUTPUT=`$JAVA -Xverbose:gc -version 2>&1` 3.233 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.234 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.235 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.236 SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xverbose:gc" 3.237 + JVM_ARG_OK=true 3.238 + else 3.239 + $ECHO "Arg failed:" >&5 3.240 + $ECHO "$OUTPUT" >&5 3.241 + JVM_ARG_OK=false 3.242 fi 3.243 3.244 SJAVAC_SERVER_JAVA="$JAVA $SJAVAC_SERVER_JAVA" 3.245 fi 3.246 3.247 3.248 - 3.249 -# Check whether --with-sjavac-server-cores was given. 3.250 -if test "${with_sjavac_server_cores+set}" = set; then : 3.251 - withval=$with_sjavac_server_cores; 3.252 -fi 3.253 - 3.254 -if test "x$with_sjavac_server_cores" != x; then 3.255 - SJAVAC_SERVER_CORES="$with_sjavac_server_cores" 3.256 -else 3.257 - if test "$NUM_CORES" -gt 16; then 3.258 - # We set this arbitrary limit because we want to limit the heap 3.259 - # size of the javac server. 3.260 - # In the future we will make the javac compilers in the server 3.261 - # share more and more state, thus enabling us to use more and 3.262 - # more concurrent threads in the server. 3.263 - SJAVAC_SERVER_CORES="16" 3.264 - else 3.265 - SJAVAC_SERVER_CORES="$NUM_CORES" 3.266 - fi 3.267 - 3.268 - if test "$MEMORY_SIZE" -gt "17000"; then 3.269 - MAX_HEAP_MEM=10000 3.270 - 3.271 - # Test if -d64 is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.272 - # If so, then append -d64 to SJAVAC_SERVER_JAVA 3.273 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -d64 -version 2>&1 | grep -i warn` 3.274 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -d64 -version 2>&1 | grep " version \""` 3.275 +if test "$MEMORY_SIZE" -gt "2500"; then 3.276 + 3.277 + $ECHO "Check if jvm arg is ok: -d64" >&5 3.278 + $ECHO "Command: $SJAVAC_SERVER_JAVA -d64 -version" >&5 3.279 + OUTPUT=`$SJAVAC_SERVER_JAVA -d64 -version 2>&1` 3.280 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.281 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.282 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.283 SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -d64" 3.284 - fi 3.285 - 3.286 - 3.287 - # Test if -Xms10G -Xmx10G is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.288 - # If so, then append -Xms10G -Xmx10G to SJAVAC_SERVER_JAVA 3.289 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -Xms10G -Xmx10G -version 2>&1 | grep -i warn` 3.290 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -Xms10G -Xmx10G -version 2>&1 | grep " version \""` 3.291 + JVM_ARG_OK=true 3.292 + else 3.293 + $ECHO "Arg failed:" >&5 3.294 + $ECHO "$OUTPUT" >&5 3.295 + JVM_ARG_OK=false 3.296 + fi 3.297 + 3.298 + if test "$JVM_ARG_OK" = true; then 3.299 + JVM_64BIT=true 3.300 + JVM_ARG_OK=false 3.301 + fi 3.302 + fi 3.303 + 3.304 +if test "$JVM_64BIT" = true; then 3.305 + if test "$MEMORY_SIZE" -gt "17000"; then 3.306 + 3.307 + $ECHO "Check if jvm arg is ok: -Xms10G -Xmx10G" >&5 3.308 + $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms10G -Xmx10G -version" >&5 3.309 + OUTPUT=`$SJAVAC_SERVER_JAVA -Xms10G -Xmx10G -version 2>&1` 3.310 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.311 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.312 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.313 SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms10G -Xmx10G" 3.314 - fi 3.315 - 3.316 - elif test "$MEMORY_SIZE" -gt "10000"; then 3.317 - MAX_HEAP_MEM=6000 3.318 - 3.319 - # Test if -d64 is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.320 - # If so, then append -d64 to SJAVAC_SERVER_JAVA 3.321 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -d64 -version 2>&1 | grep -i warn` 3.322 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -d64 -version 2>&1 | grep " version \""` 3.323 - if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.324 - SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -d64" 3.325 - fi 3.326 - 3.327 - 3.328 - # Test if -Xms6G -Xmx6G is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.329 - # If so, then append -Xms6G -Xmx6G to SJAVAC_SERVER_JAVA 3.330 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -Xms6G -Xmx6G -version 2>&1 | grep -i warn` 3.331 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -Xms6G -Xmx6G -version 2>&1 | grep " version \""` 3.332 + JVM_ARG_OK=true 3.333 + else 3.334 + $ECHO "Arg failed:" >&5 3.335 + $ECHO "$OUTPUT" >&5 3.336 + JVM_ARG_OK=false 3.337 + fi 3.338 + 3.339 + fi 3.340 + if test "$MEMORY_SIZE" -gt "10000" && test "$JVM_ARG_OK" = false; then 3.341 + 3.342 + $ECHO "Check if jvm arg is ok: -Xms6G -Xmx6G" >&5 3.343 + $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms6G -Xmx6G -version" >&5 3.344 + OUTPUT=`$SJAVAC_SERVER_JAVA -Xms6G -Xmx6G -version 2>&1` 3.345 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.346 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.347 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.348 SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms6G -Xmx6G" 3.349 - fi 3.350 - 3.351 - elif test "$MEMORY_SIZE" -gt "5000"; then 3.352 - MAX_HEAP_MEM=3000 3.353 - 3.354 - # Test if -d64 is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.355 - # If so, then append -d64 to SJAVAC_SERVER_JAVA 3.356 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -d64 -version 2>&1 | grep -i warn` 3.357 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -d64 -version 2>&1 | grep " version \""` 3.358 - if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.359 - SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -d64" 3.360 - fi 3.361 - 3.362 - 3.363 - # Test if -Xms1G -Xmx3G is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.364 - # If so, then append -Xms1G -Xmx3G to SJAVAC_SERVER_JAVA 3.365 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -Xms1G -Xmx3G -version 2>&1 | grep -i warn` 3.366 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -Xms1G -Xmx3G -version 2>&1 | grep " version \""` 3.367 + JVM_ARG_OK=true 3.368 + else 3.369 + $ECHO "Arg failed:" >&5 3.370 + $ECHO "$OUTPUT" >&5 3.371 + JVM_ARG_OK=false 3.372 + fi 3.373 + 3.374 + fi 3.375 + if test "$MEMORY_SIZE" -gt "5000" && test "$JVM_ARG_OK" = false; then 3.376 + 3.377 + $ECHO "Check if jvm arg is ok: -Xms1G -Xmx3G" >&5 3.378 + $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms1G -Xmx3G -version" >&5 3.379 + OUTPUT=`$SJAVAC_SERVER_JAVA -Xms1G -Xmx3G -version 2>&1` 3.380 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.381 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.382 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.383 SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms1G -Xmx3G" 3.384 - fi 3.385 - 3.386 - elif test "$MEMORY_SIZE" -gt "3800"; then 3.387 - MAX_HEAP_MEM=2500 3.388 - 3.389 - # Test if -Xms1G -Xmx2500M is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.390 - # If so, then append -Xms1G -Xmx2500M to SJAVAC_SERVER_JAVA 3.391 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -Xms1G -Xmx2500M -version 2>&1 | grep -i warn` 3.392 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -Xms1G -Xmx2500M -version 2>&1 | grep " version \""` 3.393 + JVM_ARG_OK=true 3.394 + else 3.395 + $ECHO "Arg failed:" >&5 3.396 + $ECHO "$OUTPUT" >&5 3.397 + JVM_ARG_OK=false 3.398 + fi 3.399 + 3.400 + fi 3.401 + if test "$MEMORY_SIZE" -gt "3800" && test "$JVM_ARG_OK" = false; then 3.402 + 3.403 + $ECHO "Check if jvm arg is ok: -Xms1G -Xmx2500M" >&5 3.404 + $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms1G -Xmx2500M -version" >&5 3.405 + OUTPUT=`$SJAVAC_SERVER_JAVA -Xms1G -Xmx2500M -version 2>&1` 3.406 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.407 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.408 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.409 SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms1G -Xmx2500M" 3.410 - fi 3.411 - 3.412 - elif test "$MEMORY_SIZE" -gt "1900"; then 3.413 - MAX_HEAP_MEM=1200 3.414 - 3.415 - # Test if -Xms700M -Xmx1400M is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.416 - # If so, then append -Xms700M -Xmx1400M to SJAVAC_SERVER_JAVA 3.417 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -Xms700M -Xmx1400M -version 2>&1 | grep -i warn` 3.418 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -Xms700M -Xmx1400M -version 2>&1 | grep " version \""` 3.419 + JVM_ARG_OK=true 3.420 + else 3.421 + $ECHO "Arg failed:" >&5 3.422 + $ECHO "$OUTPUT" >&5 3.423 + JVM_ARG_OK=false 3.424 + fi 3.425 + 3.426 + fi 3.427 +fi 3.428 +if test "$MEMORY_SIZE" -gt "2500" && test "$JVM_ARG_OK" = false; then 3.429 + 3.430 + $ECHO "Check if jvm arg is ok: -Xms1000M -Xmx1500M" >&5 3.431 + $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms1000M -Xmx1500M -version" >&5 3.432 + OUTPUT=`$SJAVAC_SERVER_JAVA -Xms1000M -Xmx1500M -version 2>&1` 3.433 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.434 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.435 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.436 - SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms700M -Xmx1400M" 3.437 - fi 3.438 - 3.439 - elif test "$MEMORY_SIZE" -gt "1000"; then 3.440 - MAX_HEAP_MEM=900 3.441 - 3.442 - # Test if -Xms400M -Xmx1100M is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.443 - # If so, then append -Xms400M -Xmx1100M to SJAVAC_SERVER_JAVA 3.444 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -Xms400M -Xmx1100M -version 2>&1 | grep -i warn` 3.445 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -Xms400M -Xmx1100M -version 2>&1 | grep " version \""` 3.446 + SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms1000M -Xmx1500M" 3.447 + JVM_ARG_OK=true 3.448 + else 3.449 + $ECHO "Arg failed:" >&5 3.450 + $ECHO "$OUTPUT" >&5 3.451 + JVM_ARG_OK=false 3.452 + fi 3.453 + 3.454 +fi 3.455 +if test "$MEMORY_SIZE" -gt "1000" && test "$JVM_ARG_OK" = false; then 3.456 + 3.457 + $ECHO "Check if jvm arg is ok: -Xms400M -Xmx1100M" >&5 3.458 + $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms400M -Xmx1100M -version" >&5 3.459 + OUTPUT=`$SJAVAC_SERVER_JAVA -Xms400M -Xmx1100M -version 2>&1` 3.460 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.461 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.462 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.463 SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms400M -Xmx1100M" 3.464 - fi 3.465 - 3.466 - else 3.467 - MAX_HEAP_MEM=512 3.468 - 3.469 - # Test if -Xms256M -Xmx512M is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.470 - # If so, then append -Xms256M -Xmx512M to SJAVAC_SERVER_JAVA 3.471 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -Xms256M -Xmx512M -version 2>&1 | grep -i warn` 3.472 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -Xms256M -Xmx512M -version 2>&1 | grep " version \""` 3.473 + JVM_ARG_OK=true 3.474 + else 3.475 + $ECHO "Arg failed:" >&5 3.476 + $ECHO "$OUTPUT" >&5 3.477 + JVM_ARG_OK=false 3.478 + fi 3.479 + 3.480 +fi 3.481 +if test "$JVM_ARG_OK" = false; then 3.482 + 3.483 + $ECHO "Check if jvm arg is ok: -Xms256M -Xmx512M" >&5 3.484 + $ECHO "Command: $SJAVAC_SERVER_JAVA -Xms256M -Xmx512M -version" >&5 3.485 + OUTPUT=`$SJAVAC_SERVER_JAVA -Xms256M -Xmx512M -version 2>&1` 3.486 + FOUND_WARN=`$ECHO "$OUTPUT" | grep -i warn` 3.487 + FOUND_VERSION=`$ECHO $OUTPUT | grep " version \""` 3.488 if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.489 SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -Xms256M -Xmx512M" 3.490 - fi 3.491 - 3.492 - fi 3.493 - 3.494 - 3.495 - # Test if -XX:PermSize=32m is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.496 - # If so, then append -XX:PermSize=32m to SJAVAC_SERVER_JAVA 3.497 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -XX:PermSize=32m -version 2>&1 | grep -i warn` 3.498 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -XX:PermSize=32m -version 2>&1 | grep " version \""` 3.499 - if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.500 - SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -XX:PermSize=32m" 3.501 - fi 3.502 - 3.503 - 3.504 - # Test if -XX:MaxPermSize=160m is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.505 - # If so, then append -XX:MaxPermSize=160m to SJAVAC_SERVER_JAVA 3.506 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -XX:MaxPermSize=160m -version 2>&1 | grep -i warn` 3.507 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -XX:MaxPermSize=160m -version 2>&1 | grep " version \""` 3.508 - if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.509 - SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -XX:MaxPermSize=160m" 3.510 - fi 3.511 - 3.512 - 3.513 - # Test if -XX:ThreadStackSize=$STACK_SIZE is a valid argument to $SJAVAC_SERVER_JAVA (often is $JAVA passed as $SJAVAC_SERVER_JAVA) 3.514 - # If so, then append -XX:ThreadStackSize=$STACK_SIZE to SJAVAC_SERVER_JAVA 3.515 - FOUND_WARN=`$SJAVAC_SERVER_JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1 | grep -i warn` 3.516 - FOUND_VERSION=`$SJAVAC_SERVER_JAVA -XX:ThreadStackSize=$STACK_SIZE -version 2>&1 | grep " version \""` 3.517 - if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then 3.518 - SJAVAC_SERVER_JAVA="$SJAVAC_SERVER_JAVA -XX:ThreadStackSize=$STACK_SIZE" 3.519 - fi 3.520 - 3.521 - 3.522 - MAX_COMPILERS_IN_HEAP=`expr $MAX_HEAP_MEM / 501` 3.523 - if test "$SJAVAC_SERVER_CORES" -gt "$MAX_COMPILERS_IN_HEAP"; then 3.524 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if number of server cores must be reduced" >&5 3.525 -$as_echo_n "checking if number of server cores must be reduced... " >&6; } 3.526 - SJAVAC_SERVER_CORES="$MAX_COMPILERS_IN_HEAP" 3.527 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, to $SJAVAC_SERVER_CORES with max heap size $MAX_HEAP_MEM MB" >&5 3.528 -$as_echo "yes, to $SJAVAC_SERVER_CORES with max heap size $MAX_HEAP_MEM MB" >&6; } 3.529 - fi 3.530 -fi 3.531 - 3.532 + JVM_ARG_OK=true 3.533 + else 3.534 + $ECHO "Arg failed:" >&5 3.535 + $ECHO "$OUTPUT" >&5 3.536 + JVM_ARG_OK=false 3.537 + fi 3.538 + 3.539 +fi 3.540 3.541 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use sjavac" >&5 3.542 $as_echo_n "checking whether to use sjavac... " >&6; }