diff --git a/.github/scripts/build-normal.sh b/.github/scripts/build-normal.sh deleted file mode 100755 index 5de0de5a..00000000 --- a/.github/scripts/build-normal.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -set -xe - -. $(dirname "$0")/new-common.sh - -# Use fastdebug if DEBUG_LEVEL is unset -DEBUG_LEVEL=${DEBUG_LEVEL:="fastdebug"} - -# Build product bundle -cd $OPENJDK_PATH -sh configure --disable-warnings-as-errors --with-debug-level=$DEBUG_LEVEL -make CONF=linux-x86_64-normal-server-$DEBUG_LEVEL THIRD_PARTY_HEAP=$BINDING_PATH/openjdk product-bundles - -if [[ $DEBUG_LEVEL == "fastdebug" ]]; then - pushd build/linux-x86_64-normal-server-fastdebug/bundles - F=`ls *_bin-debug.tar.gz` - mv $F ${F/_bin-debug/_bin} - popd -fi diff --git a/.github/scripts/ci-build.sh b/.github/scripts/ci-build.sh index c018447b..39ce2484 100755 --- a/.github/scripts/ci-build.sh +++ b/.github/scripts/ci-build.sh @@ -2,12 +2,15 @@ set -xe . $(dirname "$0")/common.sh -unset JAVA_TOOL_OPTIONS -unset MMTK_PLAN +ensure_env OPENJDK_PATH -# To OpenJDK folder -cd $OPENJDK_PATH +# Use fastdebug if DEBUG_LEVEL is unset +DEBUG_LEVEL=${DEBUG_LEVEL:="fastdebug"} + +# Build target. Could be empty, or product-bundles. +build_target=$1 -# Build +# Build product bundle +cd $OPENJDK_PATH sh configure --disable-warnings-as-errors --with-debug-level=$DEBUG_LEVEL -make CONF=linux-x86_64-normal-server-$DEBUG_LEVEL THIRD_PARTY_HEAP=$BINDING_PATH/openjdk +make CONF=linux-x86_64-normal-server-$DEBUG_LEVEL THIRD_PARTY_HEAP=$BINDING_PATH/openjdk $OPENJDK_BUILD_TARGET diff --git a/.github/scripts/ci-checkout.sh b/.github/scripts/ci-checkout.sh index 666effb1..4e5048d0 100755 --- a/.github/scripts/ci-checkout.sh +++ b/.github/scripts/ci-checkout.sh @@ -6,6 +6,9 @@ set -ex OPENJDK_URL=`cargo read-manifest --manifest-path=$BINDING_PATH/mmtk/Cargo.toml | python3 -c 'import json,sys; print(json.load(sys.stdin)["metadata"]["openjdk"]["openjdk_repo"])'` OPENJDK_VERSION=`cargo read-manifest --manifest-path=$BINDING_PATH/mmtk/Cargo.toml | python3 -c 'import json,sys; print(json.load(sys.stdin)["metadata"]["openjdk"]["openjdk_version"])'` +# Use default openjdk path if it is not set (this is only need when MMTk core calls the script) +OPENJDK_PATH=${OPENJDK_PATH:="$BINDING_PATH/repos/openjdk"} + rm -rf $OPENJDK_PATH git clone $OPENJDK_URL $OPENJDK_PATH git -C $OPENJDK_PATH checkout $OPENJDK_VERSION diff --git a/.github/scripts/ci-setup.sh b/.github/scripts/ci-setup.sh index 9b9a4413..8df050af 100755 --- a/.github/scripts/ci-setup.sh +++ b/.github/scripts/ci-setup.sh @@ -9,10 +9,10 @@ rustup component add clippy --toolchain $RUSTUP_TOOLCHAIN rustup component add rustfmt --toolchain $RUSTUP_TOOLCHAIN rustup override set $RUSTUP_TOOLCHAIN -# Download dacapo -mkdir -p $DACAPO_PATH -wget https://downloads.sourceforge.net/project/dacapobench/archive/2006-10-MR2/dacapo-2006-10-MR2.jar -O $DACAPO_PATH/dacapo-2006-10-MR2.jar +# Install running +pip3 install running-ng # Install dependencies sudo apt-get update -y +sudo apt-get install dos2unix sudo apt-get install build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libasound2-dev libxrandr-dev diff --git a/.github/scripts/ci-test-assertions.sh b/.github/scripts/ci-test-assertions.sh index 2be901ca..c721e3e2 100755 --- a/.github/scripts/ci-test-assertions.sh +++ b/.github/scripts/ci-test-assertions.sh @@ -4,57 +4,53 @@ set -xe unset JAVA_TOOL_OPTIONS -export MMTK_EXTREME_ASSERTIONS=1 -. $(dirname "$0")/ci-build.sh +run_subset() { + heap_multiplier=$1 -cd $OPENJDK_PATH + runbms_dacapo2006_with_heap_multiplier fop $heap_multiplier + runbms_dacapo2006_with_heap_multiplier luindex $heap_multiplier +} # -- SemiSpace -- export MMTK_PLAN=SemiSpace -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +run_subset 4 # --- Immix --- export MMTK_PLAN=Immix -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +run_subset 4 # --- GenImmix --- export MMTK_PLAN=GenImmix -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +run_subset 4 # --- StickyImmix --- export MMTK_PLAN=StickyImmix -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +run_subset 4 # -- GenCopy -- export MMTK_PLAN=GenCopy -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +run_subset 4 # -- NoGC -- export MMTK_PLAN=NoGC -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +runbms_dacapo2006_with_heap_size fop 1000 1000 +runbms_dacapo2006_with_heap_size luindex 1000 1000 # --- MarkSweep --- export MMTK_PLAN=MarkSweep -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +run_subset 8 # -- PageProtect -- sudo sysctl -w vm.max_map_count=655300 export MMTK_PLAN=PageProtect -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms4G -Xmx4G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -# Note: Disable compressed pointers for luindex as it does not work well with GC plans that uses virtual memory excessively. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms4G -Xmx4G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +# Note: Disable compressed pointers as it does not work well with GC plans that uses virtual memory excessively. +runbms_dacapo2006_with_heap_size fop 4000 4000 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers +runbms_dacapo2006_with_heap_size luindex 4000 4000 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers diff --git a/.github/scripts/ci-test-malloc-mark-sweep.sh b/.github/scripts/ci-test-malloc-mark-sweep.sh index e6b2d89e..af3c1a53 100755 --- a/.github/scripts/ci-test-malloc-mark-sweep.sh +++ b/.github/scripts/ci-test-malloc-mark-sweep.sh @@ -2,25 +2,11 @@ set -xe . $(dirname "$0")/common.sh -build() { - cd $OPENJDK_PATH - export MMTK_MALLOC_MARK_SWEEP=1 - sh configure --disable-warnings-as-errors --with-debug-level=$DEBUG_LEVEL - make CONF=linux-x86_64-normal-server-$DEBUG_LEVEL THIRD_PARTY_HEAP=$BINDING_PATH/openjdk - unset MMTK_MALLOC_MARK_SWEEP -} - run_test() { export MMTK_PLAN=MarkSweep # Malloc marksweep is horribly slow. We just run fop. - - # build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr - build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms50M -Xmx50M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop - # build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex - # build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd - # build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb - # build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse + runbms_dacapo2006_with_heap_multiplier fop 4 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers unset MMTK_PLAN } @@ -29,17 +15,4 @@ unset JAVA_TOOL_OPTIONS unset MMTK_PLAN # --- Normal test --- -build -run_test - -# --- Header mark bit --- -export MARK_IN_HEADER=1 -build -run_test -unset MARK_IN_HEADER - -# --- Test assertions --- -export MMTK_EXTREME_ASSERTIONS=1 -build run_test -unset MMTK_EXTREME_ASSERTIONS diff --git a/.github/scripts/ci-test-mark-in-header.sh b/.github/scripts/ci-test-mark-in-header.sh new file mode 100755 index 00000000..c9a6a87c --- /dev/null +++ b/.github/scripts/ci-test-mark-in-header.sh @@ -0,0 +1,30 @@ +set -xe + +. $(dirname "$0")/common.sh + +unset JAVA_TOOL_OPTIONS + +run_subset() { + heap_multiplier=$1 + + runbms_dacapo2006_with_heap_multiplier antlr $heap_multiplier + runbms_dacapo2006_with_heap_multiplier fop $heap_multiplier + runbms_dacapo2006_with_heap_multiplier luindex $heap_multiplier +} + +# --- Immix --- +# export MMTK_PLAN=Immix +# run_subset 4 + +# --- GenImmix --- +# export MMTK_PLAN=GenImmix +# run_subset 4 + +# --- StickyImmix --- +# export MMTK_PLAN=StickyImmix +# run_subset 4 + +# --- MarkSweep --- +export MMTK_PLAN=MarkSweep + +run_subset 8 diff --git a/.github/scripts/ci-test-only-normal-no-compressed-oops.sh b/.github/scripts/ci-test-only-normal-no-compressed-oops.sh index e3d0e1bf..1d6f3aa6 100755 --- a/.github/scripts/ci-test-only-normal-no-compressed-oops.sh +++ b/.github/scripts/ci-test-only-normal-no-compressed-oops.sh @@ -3,101 +3,52 @@ set -xe . $(dirname "$0")/common.sh unset JAVA_TOOL_OPTIONS -cd $OPENJDK_PATH + +run_all_no_compressed_oop() { + heap_multiplier=$2 + + runbms_dacapo2006_with_heap_multiplier antlr $heap_multiplier -XX:-UseCompressedOops -XX:-UseCompressedClassPointers + runbms_dacapo2006_with_heap_multiplier fop $heap_multiplier -XX:-UseCompressedOops -XX:-UseCompressedClassPointers + runbms_dacapo2006_with_heap_multiplier luindex $heap_multiplier -XX:-UseCompressedOops -XX:-UseCompressedClassPointers + runbms_dacapo2006_with_heap_multiplier pmd $heap_multiplier -XX:-UseCompressedOops -XX:-UseCompressedClassPointers + runbms_dacapo2006_with_heap_multiplier hsqldb $heap_multiplier -XX:-UseCompressedOops -XX:-UseCompressedClassPointers + runbms_dacapo2006_with_heap_multiplier eclipse $heap_multiplier -XX:-UseCompressedOops -XX:-UseCompressedClassPointers + runbms_dacapo2006_with_heap_multiplier xalan $heap_multiplier -XX:-UseCompressedOops -XX:-UseCompressedClassPointers +} # --- SemiSpace --- export MMTK_PLAN=SemiSpace -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse +run_all_no_compressed_oop 4 # Test heap resizing -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms20M -Xmx100M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop +runbms_dacapo2006_with_heap_size fop 20 100 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers # --- Immix --- export MMTK_PLAN=Immix -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse +run_all_no_compressed_oop 4 # Test heap resizing -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms20M -Xmx100M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop +runbms_dacapo2006_with_heap_size fop 20 100 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers # --- Immix --- export MMTK_PLAN=GenImmix -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse +run_all_no_compressed_oop 4 # Test heap resizing -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms20M -Xmx100M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop +runbms_dacapo2006_with_heap_size fop 20 100 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers # --- StickyImmix --- export MMTK_PLAN=StickyImmix -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms200M -Xmx200M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms200M -Xmx200M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse +run_all_no_compressed_oop 4 # --- GenCopy --- export MMTK_PLAN=GenCopy -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -# Fail non-deterministically -# build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb - -# Fail with OOM (code 137) -# build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd - -# This passes, but it takes horribly long time to run. We exclude it. -# build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse +run_all_no_compressed_oop 4 # --- NoGC --- @@ -107,50 +58,19 @@ export MMTK_PLAN=NoGC # Test - the benchmarks that are commented out do not work yet # Note: We could increase heap size when mmtk core can work for larger heap. We may get more benchmarks running. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipes - OOM -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb - OOM -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - OOM -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd - OOM -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - OOM +runbms_dacapo2006_with_heap_size antlr 1000 1000 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers +runbms_dacapo2006_with_heap_size fop 1000 1000 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers +runbms_dacapo2006_with_heap_size luindex 1000 1000 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers # --- MarkCompact --- export MMTK_PLAN=MarkCompact -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:TieredStopAtLevel=1 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:TieredStopAtLevel=1 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse + +run_all_no_compressed_oop 4 # --- MarkSweep --- export MMTK_PLAN=MarkSweep -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:TieredStopAtLevel=1 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:TieredStopAtLevel=1 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse + +run_all_no_compressed_oop 4 # --- PageProtect --- # Make sure this runs last in our tests unless we want to set it back to the default limit. @@ -158,7 +78,7 @@ sudo sysctl -w vm.max_map_count=655300 export MMTK_PLAN=PageProtect -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms4G -Xmx4G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms4G -Xmx4G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -Xms4G -Xmx4G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -# build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms4G -Xmx4G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd +# Note: Disable compressed pointers as it does not work well with GC plans that uses virtual memory excessively. +runbms_dacapo2006_with_heap_size antlr 4000 4000 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers +runbms_dacapo2006_with_heap_size fop 4000 4000 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers +runbms_dacapo2006_with_heap_size luindex 4000 4000 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers diff --git a/.github/scripts/ci-test-only-normal.sh b/.github/scripts/ci-test-only-normal.sh index 0c76812e..fe16b773 100755 --- a/.github/scripts/ci-test-only-normal.sh +++ b/.github/scripts/ci-test-only-normal.sh @@ -3,151 +3,65 @@ set -xe . $(dirname "$0")/common.sh unset JAVA_TOOL_OPTIONS -cd $OPENJDK_PATH + +run_all() { + heap_multiplier=$1 + + runbms_dacapo2006_with_heap_multiplier antlr $heap_multiplier + runbms_dacapo2006_with_heap_multiplier fop $heap_multiplier + runbms_dacapo2006_with_heap_multiplier luindex $heap_multiplier + runbms_dacapo2006_with_heap_multiplier pmd $heap_multiplier + runbms_dacapo2006_with_heap_multiplier hsqldb $heap_multiplier + runbms_dacapo2006_with_heap_multiplier eclipse $heap_multiplier +} # --- SemiSpace --- export MMTK_PLAN=SemiSpace -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse +run_all 4 # Test heap resizing -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms20M -Xmx100M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop +runbms_dacapo2006_with_heap_size fop 20 100 # --- Immix --- export MMTK_PLAN=Immix -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse +run_all 4 # Test heap resizing -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms20M -Xmx100M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop +runbms_dacapo2006_with_heap_size fop 20 100 -# --- Immix --- +# --- GenImmix --- export MMTK_PLAN=GenImmix -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse +run_all 4 # Test heap resizing -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms20M -Xmx100M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop +runbms_dacapo2006_with_heap_size fop 20 100 # --- StickyImmix --- export MMTK_PLAN=StickyImmix -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms75M -Xmx75M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms200M -Xmx200M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms200M -Xmx200M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse +run_all 4 # --- GenCopy --- export MMTK_PLAN=GenCopy -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -# Fail non-deterministically -# build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb - -# Fail with OOM (code 137) -# build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd - -# This passes, but it takes horribly long time to run. We exclude it. -# build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse +run_all 4 # --- NoGC --- - -# Build export MMTK_PLAN=NoGC -# Test - the benchmarks that are commented out do not work yet -# Note: We could increase heap size when mmtk core can work for larger heap. We may get more benchmarks running. - -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipes - OOM -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb - OOM -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - OOM -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd - OOM -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - OOM +runbms_dacapo2006_with_heap_size antlr 1000 1000 +runbms_dacapo2006_with_heap_size fop 1000 1000 +runbms_dacapo2006_with_heap_size luindex 1000 1000 # --- MarkCompact --- export MMTK_PLAN=MarkCompact -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:TieredStopAtLevel=1 -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:TieredStopAtLevel=1 -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse + +run_all 4 # --- MarkSweep --- export MMTK_PLAN=MarkSweep -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:TieredStopAtLevel=1 -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:TieredStopAtLevel=1 -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse + +run_all 8 diff --git a/.github/scripts/ci-test-only-weak-ref.sh b/.github/scripts/ci-test-only-weak-ref.sh index e11d18da..7fe62fde 100755 --- a/.github/scripts/ci-test-only-weak-ref.sh +++ b/.github/scripts/ci-test-only-weak-ref.sh @@ -10,37 +10,41 @@ export MMTK_NO_REFERENCE_TYPES=false # Immix - normal weak ref impl # MarkCompact - with extra ref forwarding +run_all() { + heap_multiplier=$1 + + runbms_dacapo2006_with_heap_multiplier antlr $heap_multiplier + runbms_dacapo2006_with_heap_multiplier fop $heap_multiplier + runbms_dacapo2006_with_heap_multiplier luindex $heap_multiplier + runbms_dacapo2006_with_heap_multiplier pmd $heap_multiplier + runbms_dacapo2006_with_heap_multiplier hsqldb $heap_multiplier + # The test may fail. Skip it for now. + #/home/runner/work/mmtk-openjdk/mmtk-openjdk/bundles/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms92M -Xmx92M -jar /home/runner/work/mmtk-openjdk/mmtk-openjdk/dacapo/dacapo-2006-10-MR2.jar eclipse + #[2024-01-15T04:42:55Z INFO mmtk::memory_manager] Initialized MMTk with Immix (FixedHeapSize(96468992)) + #===== DaCapo eclipse starting ===== + #[2024-01-15T04:42:58Z INFO mmtk::util::heap::gc_trigger] [POLL] immix: Triggering collection (23560/23552 pages) + #[2024-01-15T04:42:58Z INFO mmtk::scheduler::gc_work] End of GC (5015/23552 pages, took 76 ms) + # + # + # + # A fatal error has been detected by the Java Runtime Environment: + # + # SIGSEGV (0xb) at pc=0x00007f7dd4627dff, pid=2923, tid=2924 + # + # JRE version: OpenJDK Runtime Environment (11.0.19) (fastdebug build 11.0.19-internal+0-adhoc.runner.openjdk) + # Java VM: OpenJDK 64-Bit Server VM (fastdebug 11.0.19-internal+0-adhoc.runner.openjdk, mixed mode, tiered, compressed oops, third-party gc, linux-amd64) + # Problematic frame: + # j java.lang.invoke.LambdaFormEditor.getInCache(Ljava/lang/invoke/LambdaFormEditor$Transform;)Ljava/lang/invoke/LambdaForm;+175 java.base@11.0.19-internal + # + # runbms_dacapo2006_with_heap_multiplier eclipse $heap_multiplier +} + # --- Immix --- export MMTK_PLAN=Immix -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse +run_all 4 # --- MarkCompact --- export MMTK_PLAN=MarkCompact -# Test - the benchmarks that are commented out do not work yet -# Note: the command line options are necessary for now to ensure the benchmarks work. We may later change the options if we do not have these many constraints. -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar bloat - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar jython - does not work for stock build -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar lusearch - validation failed -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar pmd -#build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar xalan - mmtk-core gets stuck in slowdebug build - -# These benchmarks take 40s+ for slowdebug build, we may consider removing them from the CI -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:TieredStopAtLevel=1 -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar hsqldb -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -XX:TieredStopAtLevel=1 -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar eclipse + +run_all 4 diff --git a/.github/scripts/ci-test-vo-bit.sh b/.github/scripts/ci-test-vo-bit.sh index 7c8d43fb..3cad1c4c 100755 --- a/.github/scripts/ci-test-vo-bit.sh +++ b/.github/scripts/ci-test-vo-bit.sh @@ -4,59 +4,48 @@ set -xe unset JAVA_TOOL_OPTIONS -export MMTK_EXTREME_ASSERTIONS=0 -export VO_BIT=1 -. $(dirname "$0")/ci-build.sh +run_subset() { + heap_multiplier=$1 -cd $OPENJDK_PATH + runbms_dacapo2006_with_heap_multiplier antlr $heap_multiplier + runbms_dacapo2006_with_heap_multiplier fop $heap_multiplier + runbms_dacapo2006_with_heap_multiplier luindex $heap_multiplier +} # --- SemiSpace --- export MMTK_PLAN=SemiSpace -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex - +run_subset 4 # --- Immix --- export MMTK_PLAN=Immix -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +run_subset 4 # --- GenImmix --- export MMTK_PLAN=GenImmix -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +run_subset 4 # --- StickyImmix --- export MMTK_PLAN=StickyImmix -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +run_subset 4 # --- GenCopy --- export MMTK_PLAN=GenCopy -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +run_subset 4 # --- MarkSweep --- export MMTK_PLAN=MarkSweep -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms500M -Xmx500M -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +run_subset 8 # --- NoGC --- export MMTK_PLAN=NoGC -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar antlr -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar fop -build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms1G -Xmx1G -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar luindex +runbms_dacapo2006_with_heap_size antlr 1000 1000 +runbms_dacapo2006_with_heap_size fop 1000 1000 +runbms_dacapo2006_with_heap_size luindex 1000 1000 diff --git a/.github/scripts/ci-test.sh b/.github/scripts/ci-test.sh index 07126bb2..f039b745 100755 --- a/.github/scripts/ci-test.sh +++ b/.github/scripts/ci-test.sh @@ -1,17 +1,50 @@ set -ex -cur=$(realpath $(dirname "$0")) -cd $cur -./ci-build.sh -cd $cur -./ci-test-only-normal.sh -cd $cur -./ci-test-only-normal-no-compressed-oops.sh -cd $cur -./ci-test-only-weak-ref.sh -cd $cur -./ci-test-assertions.sh -cd $cur -./ci-test-vo-bit.sh -cd $cur -./ci-test-malloc-mark-sweep.sh +. $(dirname "$0")/common.sh +cur=$BINDING_PATH/.github/scripts + +# This script is only used by MMTk core. +# OPENJDK_PATH is the default path set in ci-checkout.sh +export OPENJDK_PATH=$BINDING_PATH/repos/openjdk +export DEBUG_LEVEL=fastdebug +export TEST_JAVA_BIN=$OPENJDK_PATH/build/linux-x86_64-normal-server-$DEBUG_LEVEL/jdk/bin/java + +# Download dacapo +export DACAPO_PATH=$BINDING_PATH/dacapo +mkdir -p $DACAPO_PATH +wget https://downloads.sourceforge.net/project/dacapobench/archive/2006-10-MR2/dacapo-2006-10-MR2.jar -O $DACAPO_PATH/dacapo-2006-10-MR2.jar + +# Normal build +$cur/ci-build.sh +# Test +$cur/ci-test-only-normal.sh +$cur/ci-test-only-normal-no-compressed-oops.sh +$cur/ci-test-only-weak-ref.sh + +# Build with extreme assertions +export MMTK_EXTREME_ASSERTIONS=1 +$cur/ci-build.sh +$cur/ci-test-assertions.sh +unset MMTK_EXTREME_ASSERTIONS + +# Build with vo bit +export MMTK_VO_BIT=1 +$cur/ci-build.sh +$cur/ci-test-vo-bit.sh +unset MMTK_VO_BIT=1 + +# Build with malloc mark sweep +export MMTK_EXTREME_ASSERTIONS=1 +export MMTK_MALLOC_MARK_SWEEP=1 +$cur/ci-build.sh +$cur/ci-test-malloc-mark-sweep.sh +unset MMTK_EXTREME_ASSERTIONS +unset MMTK_MALLOC_MARK_SWEEP + +# Build with mark in header - comment this out as it takes too long. +# export MMTK_MARK_IN_HEADER=1 +# export MMTK_MALLOC_MARK_SWEEP=1 +# $cur/ci-build.sh +# $cur/ci-test-malloc-mark-sweep.sh +# unset MMTK_MARK_IN_HEADER +# unset MMTK_MALLOC_MARK_SWEEP diff --git a/.github/scripts/common.sh b/.github/scripts/common.sh index 6828de2e..a0150df8 100644 --- a/.github/scripts/common.sh +++ b/.github/scripts/common.sh @@ -1,7 +1,53 @@ BINDING_PATH=$(realpath $(dirname "$0"))/../.. -OPENJDK_PATH=$BINDING_PATH/repos/openjdk -DACAPO_PATH=$OPENJDK_PATH/dacapo - RUSTUP_TOOLCHAIN=`cat $BINDING_PATH/mmtk/rust-toolchain` -DEBUG_LEVEL=fastdebug +# dacapo2006 min heap for mark compact +MINHEAP_ANTLR=5 +MINHEAP_FOP=13 +MINHEAP_LUINDEX=6 +MINHEAP_LUSEARCH=8 +MINHEAP_PMD=24 +MINHEAP_HSQLDB=117 +MINHEAP_ECLIPSE=23 +MINHEAP_XALAN=21 + +# ensure_env 'var_name' +ensure_env() { + env_var=$1 + + if ! [[ -v $env_var ]]; then + echo "Environment Variable "$env_var" is required. " + exit 1 + fi +} + +runbms_dacapo2006_with_heap_multiplier() +{ + benchmark=$1 + heap_multiplier=$2 + + minheap_env="MINHEAP_${benchmark^^}" + minheap_value="${!minheap_env}" + heap_size=$((minheap_value * heap_multiplier)) + + shift 2 + + runbms_dacapo2006_with_heap_size $benchmark $heap_size $heap_size $@ +} + +runbms_dacapo2006_with_heap_size() +{ + benchmark=$1 + min_heap=$2 + max_heap=$3 + + min_heap_str="${min_heap}M" + max_heap_str="${max_heap}M" + + shift 3 + + ensure_env TEST_JAVA_BIN + ensure_env DACAPO_PATH + + $TEST_JAVA_BIN -XX:+UseThirdPartyHeap -server -XX:MetaspaceSize=100M -Xms$min_heap_str -Xmx$max_heap_str $@ -jar $DACAPO_PATH/dacapo-2006-10-MR2.jar $benchmark +} diff --git a/.github/scripts/new-common.sh b/.github/scripts/new-common.sh deleted file mode 100755 index 404ee385..00000000 --- a/.github/scripts/new-common.sh +++ /dev/null @@ -1,4 +0,0 @@ -BINDING_PATH=$(realpath $(dirname "$0"))/../.. -OPENJDK_PATH=$BINDING_PATH/../openjdk -DACAPO_PATH=$BINDING_PATH/../dacapo -RUSTUP_TOOLCHAIN=`cat $BINDING_PATH/mmtk/rust-toolchain` diff --git a/.github/scripts/patch-mmtk-dep.py b/.github/scripts/patch-mmtk-dep.py new file mode 100644 index 00000000..e6fa434d --- /dev/null +++ b/.github/scripts/patch-mmtk-dep.py @@ -0,0 +1,29 @@ +import sys +import tomlkit + +def modify_cargo_toml(cargo_path, ref, repo=None): + # Read Cargo.toml + with open(cargo_path, 'r') as file: + data = tomlkit.parse(file.read()) + + # Modify the mmtk dependency + mmtk_dependency = data['dependencies'].get('mmtk') + if mmtk_dependency: + if repo: + mmtk_dependency['git'] = f'https://github.com/{repo}.git' + mmtk_dependency['rev'] = ref + + # Write the modified Cargo.toml + with open(cargo_path, 'w') as file: + file.write(tomlkit.dumps(data)) + +if __name__ == "__main__": + if len(sys.argv) < 3: + print("Usage: python script.py [repo]") + sys.exit(1) + + cargo_toml = sys.argv[1] + ref = sys.argv[2] + repo = sys.argv[3] if len(sys.argv) > 3 else None + + modify_cargo_toml(cargo_toml, ref, repo) diff --git a/.github/scripts/setup.sh b/.github/scripts/setup.sh deleted file mode 100755 index 9b6f09e8..00000000 --- a/.github/scripts/setup.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -set -xe - -. $(dirname "$0")/new-common.sh - -# Install nightly rust -rustup toolchain install $RUSTUP_TOOLCHAIN -rustup target add i686-unknown-linux-gnu --toolchain $RUSTUP_TOOLCHAIN -rustup component add clippy --toolchain $RUSTUP_TOOLCHAIN -rustup component add rustfmt --toolchain $RUSTUP_TOOLCHAIN -rustup override set $RUSTUP_TOOLCHAIN - -# Install running -pip3 install running-ng - -# Install dependencies -sudo apt-get update -y -sudo apt-get install dos2unix -sudo apt-get install build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libasound2-dev libxrandr-dev diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..b5a3cd39 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,73 @@ +name: Build OpenJDK Binding + +on: + workflow_call: + inputs: + debug-level: + required: true + type: string + build-env-var: + required: false + type: string + mmtk-core-repo: + required: false + type: string + mmtk-core-ref: + required: false + type: string + +jobs: + build-linux-x64: + name: linux-x64 + runs-on: ubuntu-22.04 + steps: + - name: Checkout MMTk OpenJDK binding + uses: actions/checkout@v4 + with: + path: ./git/mmtk-openjdk + - name: Extract OpenJDK revision + id: extract-openjdk-revision + run: | + OPENJDK_VERSION=`sed -n 's/^openjdk_version.=."\(.*\)"$/\1/p' < git/mmtk-openjdk/mmtk/Cargo.toml` + echo "openjdk-revision=$OPENJDK_VERSION" >> $GITHUB_OUTPUT + - name: Checkout OpenJDK + uses: actions/checkout@v4 + with: + repository: mmtk/openjdk + path: ./git/openjdk + ref: ${{ steps.extract-openjdk-revision.outputs.openjdk-revision }} + # Patch mmtk-core version if needed + - name: Patch mmtk-core version + if: ${{ inputs.mmtk-core-repo != '' || inputs.mmtk-core-ref != '' }} + run: | + pip3 install tomlkit + python3 .github/scripts/patch-mmtk-dep.py mmtk/Cargo.toml ${{ inputs.mmtk-core-ref }} ${{ inputs.mmtk-core-repo }} + cat mmtk/Cargo.toml + working-directory: ./git/mmtk-openjdk + - name: Setup environment + run: ./.github/scripts/ci-setup.sh + working-directory: ./git/mmtk-openjdk + - name: Export build environemnt variables + if: ${{ inputs.build-env-var != '' }} + run: | + echo "${{ inputs.build-env-var }}" >> $GITHUB_ENV + - name: Export build suffix + run: | + if [ -z "${{ inputs.build-env-var }}" ]; then + echo "BUILD_SUFFIX=normal" >> $GITHUB_ENV + else + escaped_build=$(echo "${{ inputs.build-env-var }}" | sed 's/ /_/g') + echo "BUILD_SUFFIX=$escaped_build" >> $GITHUB_ENV + fi + - name: Build MMTk OpenJDK ${{ inputs.debug-level }} + run: | + OPENJDK_PATH=$GITHUB_WORKSPACE/git/openjdk DEBUG_LEVEL=${{ inputs.debug-level }} OPENJDK_BUILD_TARGET=product-bundles ./.github/scripts/ci-build.sh + working-directory: ./git/mmtk-openjdk + - name: Upload bundles + uses: actions/upload-artifact@v3 + with: + name: linux-x86_64-server-${{ inputs.debug-level }}-bundles-${{ env.BUILD_SUFFIX }} + path: | + ./git/openjdk/build/linux-x86_64-normal-server-${{ inputs.debug-level }}/bundles/*_bin.tar.gz + ./git/openjdk/build/linux-x86_64-normal-server-${{ inputs.debug-level }}/bundles/*_bin-debug.tar.gz + retention-days: 2 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 7c86df77..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,81 +0,0 @@ -name: DaCapo Tests - -on: - pull_request: - branches: - - master - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -jobs: - test: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v2 - - name: Setup environments - run: | - ./.github/scripts/ci-checkout.sh - ./.github/scripts/ci-setup.sh - - # Run the tests - - name: DaCapo Tests - run: | - ./.github/scripts/ci-build.sh - ./.github/scripts/ci-test-only-normal.sh - - name: DaCapo Tests with valid object bit (VO bit) - run: ./.github/scripts/ci-test-vo-bit.sh - - name: DaCapo Tests with malloc Mark-Sweep - run: ./.github/scripts/ci-test-malloc-mark-sweep.sh - - # Style check - - name: Style checks - run: ./.github/scripts/ci-style.sh - - test-weak-ref: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v2 - - name: Setup environments - run: | - ./.github/scripts/ci-checkout.sh - ./.github/scripts/ci-setup.sh - - # Run the tests - - name: DaCapo Tests with weak reference processing - run: | - ./.github/scripts/ci-build.sh - ./.github/scripts/ci-test-only-weak-ref.sh - - test-assertions: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v2 - - name: Setup Environments - run: | - ./.github/scripts/ci-checkout.sh - ./.github/scripts/ci-setup.sh - - # Run the tests with assertions - - name: DaCapo Test (with extreme_assertions) - run: ./.github/scripts/ci-test-assertions.sh - - msrv: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v2 - - name: Install Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - override: true - - name: Install cargo-msrv - run: cargo install cargo-msrv - # Verify the MSRV defined in Cargo.toml - - name: Verify MSRV - run: cargo msrv --path mmtk verify - # If the previous step fails, find MSRV - - name: Find MSRV - if: failure() - run: cargo msrv --path mmtk diff --git a/.github/workflows/run-dacapo-2006.yml b/.github/workflows/run-dacapo-2006.yml new file mode 100644 index 00000000..dc198d4a --- /dev/null +++ b/.github/workflows/run-dacapo-2006.yml @@ -0,0 +1,127 @@ +name: "Test with DaCapo 2006" + +on: + workflow_call: + workflow_dispatch: + inputs: + mmtk-core-repo: + required: false + type: string + mmtk-core-ref: + required: false + type: string + +env: + DACAPO_VERSION: dacapo-2006-10-MR2 + DACAPO_FILE: dacapo-2006-10-MR2.jar + DACAPO_DOWNLOAD_URL: https://downloads.sourceforge.net/project/dacapobench/archive/2006-10-MR2/dacapo-2006-10-MR2.jar + +jobs: + cache-dacapo: + runs-on: ubuntu-22.04 + steps: + - name: Check ${{ env.DACAPO_VERSION }} cache + id: check-cache + uses: actions/cache@v3 + with: + path: dacapo/${{ env.DACAPO_FILE }} + key: ${{ env.DACAPO_VERSION }} + lookup-only: true + - name: Install ${{ env.DACAPO_VERSION }} + if: steps.check-cache.outputs.cache-hit != 'true' + run: | + mkdir -p dacapo + pushd dacapo + wget -q "${{ env.DACAPO_DOWNLOAD_URL }}" -O ${{ env.DACAPO_FILE }} + popd + + test-normal-build: + name: Test normal build + runs-on: ubuntu-22.04 + env: + build-debug-level: fastdebug + needs: + - cache-dacapo + strategy: + fail-fast: false + matrix: + test-script: ["ci-test-only-normal", "ci-test-only-normal-no-compressed-oops", "ci-test-only-weak-ref"] + steps: + # We need to check out the binding repo to get the running configs and test scripts + - name: Checkout MMTk OpenJDK binding + uses: actions/checkout@v4 + - name: Setup environment + run: | + pip3 install running-ng + sudo apt-get update -y + sudo apt-get install -y build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libasound2-dev libxrandr-dev + - name: Fetch ${{ env.DACAPO_VERSION }} cache + id: fetch-cache + uses: actions/cache@v3 + with: + path: dacapo/${{ env.DACAPO_FILE }} + key: ${{ env.DACAPO_VERSION }} + - name: Download bundles + uses: actions/download-artifact@v3 + with: + name: linux-x86_64-server-${{ env.build-debug-level }}-bundles-normal + path: bundles + - name: Extract OpenJDK + run: | + pushd bundles + tar xvf *.tar.gz + BIN_DIR=`find . -name bin` + mv `dirname $BIN_DIR` jdk + popd + - name: Test ${{ matrix.test-script }} + run: | + export TEST_JAVA_BIN=$GITHUB_WORKSPACE/bundles/jdk/bin/java + export DACAPO_PATH=$GITHUB_WORKSPACE/dacapo + ./.github/scripts/${{ matrix.test-script }}.sh + + test-feature-build: + name: Test feature build + runs-on: ubuntu-22.04 + needs: + - cache-dacapo + env: + build-debug-level: fastdebug + strategy: + fail-fast: false + matrix: + test-script: ["ci-test-vo-bit", "ci-test-assertions", "ci-test-malloc-mark-sweep", "ci-test-mark-in-header"] + include: + - test-script: ci-test-vo-bit + build-suffix: MMTK_VO_BIT=1 + - test-script: ci-test-assertions + build-suffix: MMTK_EXTREME_ASSERTIONS=1 + - test-script: ci-test-malloc-mark-sweep + build-suffix: MMTK_MALLOC_MARK_SWEEP=1_MMTK_EXTREME_ASSERTIONS=1 + - test-script: ci-test-mark-in-header + build-suffix: MMTK_MALLOC_MARK_SWEEP=1_MMTK_MARK_IN_HEADER=1 + steps: + - name: Checkout MMTk OpenJDK binding + uses: actions/checkout@v4 + - name: Fetch ${{ env.DACAPO_VERSION }} cache + id: fetch-cache + uses: actions/cache@v3 + with: + path: dacapo/${{ env.DACAPO_FILE }} + key: ${{ env.DACAPO_VERSION }} + - name: Download bundles + uses: actions/download-artifact@v3 + with: + name: linux-x86_64-server-${{ env.build-debug-level }}-bundles-${{ matrix.build-suffix }} + path: bundles + - name: Extract OpenJDK + run: | + pushd bundles + tar xvf *.tar.gz + BIN_DIR=`find . -name bin` + mv `dirname $BIN_DIR` jdk + popd + - name: Test ${{ matrix.test-script }} + run: | + export TEST_JAVA_BIN=$GITHUB_WORKSPACE/bundles/jdk/bin/java + export DACAPO_PATH=$GITHUB_WORKSPACE/dacapo + ./.github/scripts/${{ matrix.test-script }}.sh diff --git a/.github/workflows/main.yml b/.github/workflows/run-dacapo-chopin.yml similarity index 73% rename from .github/workflows/main.yml rename to .github/workflows/run-dacapo-chopin.yml index 9fc5deee..48da555e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/run-dacapo-chopin.yml @@ -1,13 +1,7 @@ -name: "Continuous Integration" +name: "Test with DaCapo Chopin" on: - pull_request: - branches: - - master - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true + workflow_call: env: DACAPO_VERSION: dacapo-23.9-RC3-chopin @@ -15,47 +9,7 @@ env: DACAPO_DOWNLOAD_URL: https://download.dacapobench.org/chopin/dacapo-23.9-RC3-chopin.zip jobs: - build-linux-x64: - name: linux-x64 - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - matrix: - debug-level: ["fastdebug", "release"] - steps: - - name: Checkout MMTk OpenJDK binding - uses: actions/checkout@v3 - with: - path: ./git/mmtk-openjdk - - name: Extract OpenJDK revision - id: extract-openjdk-revision - run: | - OPENJDK_VERSION=`sed -n 's/^openjdk_version.=."\(.*\)"$/\1/p' < git/mmtk-openjdk/mmtk/Cargo.toml` - echo "openjdk-revision=$OPENJDK_VERSION" >> $GITHUB_OUTPUT - - name: Checkout OpenJDK - uses: actions/checkout@v3 - with: - repository: mmtk/openjdk - path: ./git/openjdk - ref: ${{ steps.extract-openjdk-revision.outputs.openjdk-revision }} - - name: Setup environment - run: ./.github/scripts/setup.sh - working-directory: ./git/mmtk-openjdk - - name: Style checks - run: ./.github/scripts/style-check.sh - working-directory: ./git/mmtk-openjdk - - name: Build MMTk OpenJDK ${{ matrix.debug-level }} - run: DEBUG_LEVEL=${{ matrix.debug-level }} ./.github/scripts/build-normal.sh - working-directory: ./git/mmtk-openjdk - - name: Upload bundles - uses: actions/upload-artifact@v3 - with: - name: linux-x86_64-server-${{ matrix.debug-level }}-bundles - path: ./git/openjdk/build/linux-x86_64-normal-server-${{ matrix.debug-level }}/bundles/*_bin.tar.gz - retention-days: 2 - cache-dacapo: - name: Cache Dacapo runs-on: ubuntu-22.04 steps: - name: Check ${{ env.DACAPO_VERSION }} cache @@ -73,10 +27,8 @@ jobs: wget -q "${{ env.DACAPO_DOWNLOAD_URL }}" -O ${{ env.DACAPO_FILE }} popd - test-linux-x64: - name: linux-x64 + test-normal-build: needs: - - build-linux-x64 - cache-dacapo runs-on: ubuntu-22.04 strategy: @@ -123,7 +75,7 @@ jobs: - name: Check free space run: df -h - name: Checkout MMTk OpenJDK binding - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup environment run: | pip3 install running-ng @@ -162,7 +114,7 @@ jobs: - name: Download bundles uses: actions/download-artifact@v3 with: - name: linux-x86_64-server-${{ matrix.debug-level }}-bundles + name: linux-x86_64-server-${{ matrix.debug-level }}-bundles-normal path: bundles - name: Extract OpenJDK run: | diff --git a/.github/workflows/stylecheck.yml b/.github/workflows/stylecheck.yml new file mode 100644 index 00000000..e18276af --- /dev/null +++ b/.github/workflows/stylecheck.yml @@ -0,0 +1,39 @@ +name: Style check + +on: + pull_request: + branches: + - master + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + style-check: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - name: Setup environments + run: ./.github/scripts/ci-setup.sh + - name: Style checks + run: ./.github/scripts/ci-style.sh + + msrv: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - name: Install Rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + - name: Install cargo-msrv + run: cargo install cargo-msrv + # Verify the MSRV defined in Cargo.toml + - name: Verify MSRV + run: cargo msrv --path mmtk verify + # If the previous step fails, find MSRV + - name: Find MSRV + if: failure() + run: cargo msrv --path mmtk diff --git a/.github/workflows/test-core-extended.yml b/.github/workflows/test-core-extended.yml new file mode 100644 index 00000000..1c0141c0 --- /dev/null +++ b/.github/workflows/test-core-extended.yml @@ -0,0 +1,72 @@ +# Extended tests for MMTk core. These tests are only executed on demand. + +# TODO: We should use dacapo chopin for testing. + +name: Extended tests for MMTk core + +on: + workflow_dispatch: + inputs: + mmtk-core-repo: + required: false + type: string + mmtk-core-ref: + required: false + type: string + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + # Normal build + build-normal-fastdebug: + uses: ./.github/workflows/build.yml + with: + debug-level: fastdebug + mmtk-core-repo: ${{ inputs.mmtk-core-repo }} + mmtk-core-ref: ${{ inputs.mmtk-core-ref }} + + # Feature build: only build fastdebug + build-vo-bit: + uses: ./.github/workflows/build.yml + with: + build-env-var: MMTK_VO_BIT=1 + debug-level: fastdebug + mmtk-core-repo: ${{ inputs.mmtk-core-repo }} + mmtk-core-ref: ${{ inputs.mmtk-core-ref }} + + build-extreme-assertions: + uses: ./.github/workflows/build.yml + with: + build-env-var: MMTK_EXTREME_ASSERTIONS=1 + debug-level: fastdebug + mmtk-core-repo: ${{ inputs.mmtk-core-repo }} + mmtk-core-ref: ${{ inputs.mmtk-core-ref }} + + build-malloc-mark-sweep: + uses: ./.github/workflows/build.yml + with: + # Test malloc mark sweep with extreme assertions + build-env-var: MMTK_MALLOC_MARK_SWEEP=1 MMTK_EXTREME_ASSERTIONS=1 + debug-level: fastdebug + mmtk-core-repo: ${{ inputs.mmtk-core-repo }} + mmtk-core-ref: ${{ inputs.mmtk-core-ref }} + + build-mark-in-header: + uses: ./.github/workflows/build.yml + with: + # Before we get other plans work with mark in header, we only test with malloc mark sweep. + build-env-var: MMTK_MALLOC_MARK_SWEEP=1 MMTK_MARK_IN_HEADER=1 + debug-level: fastdebug + mmtk-core-repo: ${{ inputs.mmtk-core-repo }} + mmtk-core-ref: ${{ inputs.mmtk-core-ref }} + + run-dacapo-2006: + needs: + - build-normal-fastdebug + - build-vo-bit + - build-extreme-assertions + - build-malloc-mark-sweep + - build-mark-in-header + uses: ./.github/workflows/run-dacapo-2006.yml diff --git a/.github/workflows/test-core-minimal.yml b/.github/workflows/test-core-minimal.yml new file mode 100644 index 00000000..09aa2f19 --- /dev/null +++ b/.github/workflows/test-core-minimal.yml @@ -0,0 +1,74 @@ +# Extended tests for MMTk core. These tests are only executed on demand. + +# TODO: +# - This is currently a duplicate of test-core-extended.yml. But we should only keep a subset of the essential tests in this workflow. +# - We should use dacapo chopin for testing. + +name: Minimal tests for MMTk core + +on: + workflow_dispatch: + inputs: + mmtk-core-repo: + required: false + type: string + mmtk-core-ref: + required: false + type: string + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + # Normal build + build-normal-fastdebug: + uses: ./.github/workflows/build.yml + with: + debug-level: fastdebug + mmtk-core-repo: ${{ inputs.mmtk-core-repo }} + mmtk-core-ref: ${{ inputs.mmtk-core-ref }} + + # Feature build: only build fastdebug + build-vo-bit: + uses: ./.github/workflows/build.yml + with: + build-env-var: MMTK_VO_BIT=1 + debug-level: fastdebug + mmtk-core-repo: ${{ inputs.mmtk-core-repo }} + mmtk-core-ref: ${{ inputs.mmtk-core-ref }} + + build-extreme-assertions: + uses: ./.github/workflows/build.yml + with: + build-env-var: MMTK_EXTREME_ASSERTIONS=1 + debug-level: fastdebug + mmtk-core-repo: ${{ inputs.mmtk-core-repo }} + mmtk-core-ref: ${{ inputs.mmtk-core-ref }} + + build-malloc-mark-sweep: + uses: ./.github/workflows/build.yml + with: + # Test malloc mark sweep with extreme assertions + build-env-var: MMTK_MALLOC_MARK_SWEEP=1 MMTK_EXTREME_ASSERTIONS=1 + debug-level: fastdebug + mmtk-core-repo: ${{ inputs.mmtk-core-repo }} + mmtk-core-ref: ${{ inputs.mmtk-core-ref }} + + build-mark-in-header: + uses: ./.github/workflows/build.yml + with: + # Before we get other plans work with mark in header, we only test with malloc mark sweep. + build-env-var: MMTK_MALLOC_MARK_SWEEP=1 MMTK_MARK_IN_HEADER=1 + debug-level: fastdebug + mmtk-core-repo: ${{ inputs.mmtk-core-repo }} + mmtk-core-ref: ${{ inputs.mmtk-core-ref }} + + run-dacapo-2006: + needs: + - build-normal-fastdebug + - build-vo-bit + - build-extreme-assertions + - build-malloc-mark-sweep + - build-mark-in-header + uses: ./.github/workflows/run-dacapo-2006.yml diff --git a/.github/workflows/test-pr.yml b/.github/workflows/test-pr.yml new file mode 100644 index 00000000..f6e867ea --- /dev/null +++ b/.github/workflows/test-pr.yml @@ -0,0 +1,64 @@ +name: DaCapo Tests + +on: + pull_request: + branches: + - master + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + # Normal build: build both fastdebug and release + build-normal-fastdebug: + uses: ./.github/workflows/build.yml + with: + debug-level: fastdebug + + build-normal-release: + uses: ./.github/workflows/build.yml + with: + debug-level: release + + # Feature build: only build fastdebug + build-vo-bit: + uses: ./.github/workflows/build.yml + with: + build-env-var: MMTK_VO_BIT=1 + debug-level: fastdebug + + build-extreme-assertions: + uses: ./.github/workflows/build.yml + with: + build-env-var: MMTK_EXTREME_ASSERTIONS=1 + debug-level: fastdebug + + build-malloc-mark-sweep: + uses: ./.github/workflows/build.yml + with: + # Test malloc mark sweep with extreme assertions + build-env-var: MMTK_MALLOC_MARK_SWEEP=1 MMTK_EXTREME_ASSERTIONS=1 + debug-level: fastdebug + + build-mark-in-header: + uses: ./.github/workflows/build.yml + with: + # Before we get other plans work with mark in header, we only test with malloc mark sweep. + build-env-var: MMTK_MALLOC_MARK_SWEEP=1 MMTK_MARK_IN_HEADER=1 + debug-level: fastdebug + + run-dacapo-2006: + needs: + - build-normal-fastdebug + - build-vo-bit + - build-extreme-assertions + - build-malloc-mark-sweep + - build-mark-in-header + uses: ./.github/workflows/run-dacapo-2006.yml + + run-dacapo-chopin: + needs: + - build-normal-fastdebug + - build-normal-release + uses: ./.github/workflows/run-dacapo-chopin.yml diff --git a/README.md b/README.md index 51ccf272..0eeb6103 100644 --- a/README.md +++ b/README.md @@ -192,22 +192,22 @@ you may have to change the location of `llvm-profdata`. ### Location of Mark-bit The location of the mark-bit can be specified by the environment variable -`MARK_IN_HEADER`. By default, the mark-bit is located on the side (in a side -metadata), but by setting the environment variable `MARK_IN_HEADER=1` while +`MMTK_MARK_IN_HEADER`. By default, the mark-bit is located on the side (in a side +metadata), but by setting the environment variable `MMTK_MARK_IN_HEADER=1` while building OpenJDK, we can change its location to be in the object's header: ```console -$ MARK_IN_HEADER=1 make CONF=linux-x86_64-normal-server-$DEBUG_LEVEL THIRD_PARTY_HEAP=$PWD/../mmtk-openjdk/openjdk +$ MMTK_MARK_IN_HEADER=1 make CONF=linux-x86_64-normal-server-$DEBUG_LEVEL THIRD_PARTY_HEAP=$PWD/../mmtk-openjdk/openjdk ``` ### Valid object bit To support the `vo_bit` (valid object bit) feature in mmtk-core, you can set the -environment variable `VO_BIT=1` when building OpenJDK. This will set the feature +environment variable `MMTK_VO_BIT=1` when building OpenJDK. This will set the feature for mmtk-core, as well as compiling the fastpath for the VO bit. ```console -$ VO_BIT=1 make CONF=linux-x86_64-normal-server-$DEBUG_LEVEL THIRD_PARTY_HEAP=$PWD/../mmtk-openjdk/openjdk +$ MMTK_VO_BIT=1 make CONF=linux-x86_64-normal-server-$DEBUG_LEVEL THIRD_PARTY_HEAP=$PWD/../mmtk-openjdk/openjdk ``` ## Test diff --git a/mmtk/Cargo.lock b/mmtk/Cargo.lock index 54e286cb..b65ed3cb 100644 --- a/mmtk/Cargo.lock +++ b/mmtk/Cargo.lock @@ -386,8 +386,8 @@ dependencies = [ [[package]] name = "mmtk" -version = "0.22.0" -source = "git+https://github.com/mmtk/mmtk-core.git?rev=79fb0bb1c1576911a7725d7ed72ba30cfcb22715#79fb0bb1c1576911a7725d7ed72ba30cfcb22715" +version = "0.22.1" +source = "git+https://github.com/mmtk/mmtk-core.git?rev=ef2bd6d043d8675badaa415db89be7b52439725f#ef2bd6d043d8675badaa415db89be7b52439725f" dependencies = [ "atomic", "atomic-traits", @@ -421,7 +421,7 @@ dependencies = [ [[package]] name = "mmtk-macros" -version = "0.22.0" +version = "0.22.1" source = "git+https://github.com/mmtk/mmtk-core.git?rev=79fb0bb1c1576911a7725d7ed72ba30cfcb22715#79fb0bb1c1576911a7725d7ed72ba30cfcb22715" dependencies = [ "proc-macro-error", diff --git a/mmtk/Cargo.toml b/mmtk/Cargo.toml index f548ce4d..86223ea4 100644 --- a/mmtk/Cargo.toml +++ b/mmtk/Cargo.toml @@ -32,7 +32,7 @@ memoffset = "0.9.0" # - change branch # - change repo name # But other changes including adding/removing whitespaces in commented lines may break the CI. -mmtk = { git = "https://github.com/mmtk/mmtk-core.git", rev = "79fb0bb1c1576911a7725d7ed72ba30cfcb22715" } +mmtk = { git = "https://github.com/mmtk/mmtk-core.git", rev = "ef2bd6d043d8675badaa415db89be7b52439725f" } # Uncomment the following to build locally # mmtk = { path = "../repos/mmtk-core" } @@ -44,7 +44,7 @@ default = [] mmtk_extreme_assertions = ["mmtk/extreme_assertions"] nogc_lock_free = ["mmtk/nogc_lock_free"] nogc_no_zeroing = ["mmtk/nogc_no_zeroing"] -# Use the env var VO_BIT=1 when building OpenJDK so the fastpath for setting the alloc bit will be compiled in. +# Use the env var MMTK_VO_BIT=1 when building OpenJDK so the fastpath for setting the alloc bit will be compiled in. # See README. vo_bit = ["mmtk/vo_bit"] diff --git a/openjdk/CompileThirdPartyHeap.gmk b/openjdk/CompileThirdPartyHeap.gmk index 2332fd0d..1d42604f 100644 --- a/openjdk/CompileThirdPartyHeap.gmk +++ b/openjdk/CompileThirdPartyHeap.gmk @@ -19,7 +19,7 @@ ifdef MMTK_PLAN GC_FEATURES=--features $(MMTK_PLAN) endif -ifeq ($(VO_BIT), 1) +ifeq ($(MMTK_VO_BIT), 1) ifndef GC_FEATURES GC_FEATURES=--features vo_bit else @@ -27,7 +27,7 @@ ifeq ($(VO_BIT), 1) endif endif -ifeq ($(MARK_IN_HEADER), 1) +ifeq ($(MMTK_MARK_IN_HEADER), 1) ifndef GC_FEATURES GC_FEATURES=--features mark_bit_in_header else @@ -78,7 +78,7 @@ FORCE: TARGETS += $(LIB_MMTK) JVM_SRC_DIRS += $(MMTK_CPP_ROOT) $(MMTK_CPP_ROOT)/barriers JVM_CFLAGS += -std=c++11 -DINCLUDE_THIRD_PARTY_HEAP -DTHIRD_PARTY_HEAP_SRC=$(MMTK_CPP_ROOT) -ifeq ($(VO_BIT), 1) +ifeq ($(MMTK_VO_BIT), 1) JVM_CFLAGS += -DMMTK_ENABLE_VO_BIT endif