diff --git a/.github/scripts/ci-test.sh b/.github/scripts/ci-test-extended.sh similarity index 80% rename from .github/scripts/ci-test.sh rename to .github/scripts/ci-test-extended.sh index f039b745..4a927a44 100755 --- a/.github/scripts/ci-test.sh +++ b/.github/scripts/ci-test-extended.sh @@ -22,24 +22,16 @@ $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 +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 +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 +MMTK_EXTREME_ASSERTIONS=1 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 diff --git a/.github/scripts/ci-test-minimal.sh b/.github/scripts/ci-test-minimal.sh new file mode 100755 index 00000000..15fe751b --- /dev/null +++ b/.github/scripts/ci-test-minimal.sh @@ -0,0 +1,36 @@ +set -ex + +. $(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 +MMTK_PLAN=SemiSpace runbms_dacapo2006_with_heap_multiplier fop 4 +MMTK_PLAN=Immix runbms_dacapo2006_with_heap_multiplier fop 4 +MMTK_PLAN=GenImmix runbms_dacapo2006_with_heap_multiplier fop 4 +MMTK_PLAN=StickyImmix runbms_dacapo2006_with_heap_multiplier fop 4 +MMTK_PLAN=GenCopy runbms_dacapo2006_with_heap_multiplier fop 4 +MMTK_PLAN=MarkCompact runbms_dacapo2006_with_heap_multiplier fop 4 +MMTK_PLAN=MarkSweep runbms_dacapo2006_with_heap_multiplier fop 8 +MMTK_PLAN=NoGC runbms_dacapo2006_with_heap_size fop 1000 1000 +# Test heap resizing +MMTK_PLAN=GenImmix runbms_dacapo2006_with_heap_size fop 20 100 +# Test no compressed oop +MMTK_PLAN=GenImmix runbms_dacapo2006_with_heap_multiplier fop 4 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers + +# Build with vo bit +MMTK_VO_BIT=1 $cur/ci-build.sh +# Test +MMTK_PLAN=GenImmix runbms_dacapo2006_with_heap_multiplier fop 4 diff --git a/.github/workflows/test-core-extended.yml b/.github/workflows/test-core-extended.yml deleted file mode 100644 index 1c0141c0..00000000 --- a/.github/workflows/test-core-extended.yml +++ /dev/null @@ -1,72 +0,0 @@ -# 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 deleted file mode 100644 index 09aa2f19..00000000 --- a/.github/workflows/test-core-minimal.yml +++ /dev/null @@ -1,74 +0,0 @@ -# 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/mmtk/Cargo.lock b/mmtk/Cargo.lock index b65ed3cb..983a839b 100644 --- a/mmtk/Cargo.lock +++ b/mmtk/Cargo.lock @@ -387,7 +387,7 @@ dependencies = [ [[package]] name = "mmtk" version = "0.22.1" -source = "git+https://github.com/mmtk/mmtk-core.git?rev=ef2bd6d043d8675badaa415db89be7b52439725f#ef2bd6d043d8675badaa415db89be7b52439725f" +source = "git+https://github.com/mmtk/mmtk-core.git?rev=de454f5b5ad9825e5dd0105e0bdc4ce05895a72a#de454f5b5ad9825e5dd0105e0bdc4ce05895a72a" dependencies = [ "atomic", "atomic-traits", @@ -422,7 +422,7 @@ dependencies = [ [[package]] name = "mmtk-macros" version = "0.22.1" -source = "git+https://github.com/mmtk/mmtk-core.git?rev=79fb0bb1c1576911a7725d7ed72ba30cfcb22715#79fb0bb1c1576911a7725d7ed72ba30cfcb22715" +source = "git+https://github.com/mmtk/mmtk-core.git?rev=de454f5b5ad9825e5dd0105e0bdc4ce05895a72a#de454f5b5ad9825e5dd0105e0bdc4ce05895a72a" dependencies = [ "proc-macro-error", "proc-macro2", diff --git a/mmtk/Cargo.toml b/mmtk/Cargo.toml index 86223ea4..e73f270c 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 = "ef2bd6d043d8675badaa415db89be7b52439725f" } +mmtk = { git = "https://github.com/mmtk/mmtk-core.git", rev = "de454f5b5ad9825e5dd0105e0bdc4ce05895a72a" } # Uncomment the following to build locally # mmtk = { path = "../repos/mmtk-core" }