Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
dd0c9bf
Only do normal build once
qinsoon Jan 8, 2024
1fb0c39
Minor fix
qinsoon Jan 9, 2024
0e0fe7c
Use proper heap size in test scripts. test-all.yml calls
qinsoon Jan 10, 2024
daf98e6
Avoid using env in job name
qinsoon Jan 10, 2024
2584532
Remove concurrency in called workflows
qinsoon Jan 10, 2024
76d1ff7
Fix artifact download
qinsoon Jan 10, 2024
0307418
Remove some duplicated scripts.
qinsoon Jan 11, 2024
f6e0d76
Fix dacapo-2006 test
qinsoon Jan 11, 2024
64b4466
export DEBUG_LEVEL for feature builds
qinsoon Jan 11, 2024
fe2d79e
Run NoGC with 1G heap
qinsoon Jan 11, 2024
c22a144
Allow build with a different mmtk-core version. Separate build from test
qinsoon Jan 12, 2024
a482a90
Always export build suffix
qinsoon Jan 12, 2024
c0f4bb3
Seprate malloc mark sweep tests and mark-in-header tests
qinsoon Jan 14, 2024
1e1e472
Run extreme-assertions tests with normal heap size (4x instead of 2x)
qinsoon Jan 14, 2024
f466b04
Renaming some scripts. Allow workflow_dispatch to trigger tests
qinsoon Jan 15, 2024
2530d23
Trigger test-core-extended once
qinsoon Jan 15, 2024
f636d6f
Hard code mmtk-core repo/ref for testing
qinsoon Jan 15, 2024
8df5d57
Skip some tests that may fail
qinsoon Jan 16, 2024
10f93b9
Test with Kunshan's vo bit fix
qinsoon Jan 16, 2024
b581535
Revert trigger for extended tests
qinsoon Jan 16, 2024
88978e9
Make scripts still work for mmtk-core tests
qinsoon Jan 16, 2024
49535c2
Build time env vars are prefixed with MMTK_
qinsoon Jan 16, 2024
016370e
Fix test script for mmtk-core
qinsoon Jan 16, 2024
7c6357b
Add two workflows for mmtk-core tests (placeholder)
qinsoon Jan 16, 2024
fb629c3
Update mmtk-core version
qinsoon Jan 16, 2024
936c09f
Update mmtk-core version
qinsoon Jan 16, 2024
ab4deed
Use checkout v4
qinsoon Jan 17, 2024
269858f
Remove the tar file renaming before uploading. Matching both tar file
qinsoon Jan 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 0 additions & 20 deletions .github/scripts/build-normal.sh

This file was deleted.

15 changes: 9 additions & 6 deletions .github/scripts/ci-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This variable is unused


# 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
3 changes: 3 additions & 0 deletions .github/scripts/ci-checkout.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
6 changes: 3 additions & 3 deletions .github/scripts/ci-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
36 changes: 16 additions & 20 deletions .github/scripts/ci-test-assertions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought the idea was to move away from using environment variables since OpenJDK has support for passing MMTk options


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
29 changes: 1 addition & 28 deletions .github/scripts/ci-test-malloc-mark-sweep.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -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
30 changes: 30 additions & 0 deletions .github/scripts/ci-test-mark-in-header.sh
Original file line number Diff line number Diff line change
@@ -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
Loading