Skip to content

Concurrent Immix #311

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 22 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
ab6f615
WIP
tianleq Jul 25, 2025
b7cdf24
Merge branch 'master' of github.com:tianleq/mmtk-openjdk into concurr…
tianleq Jul 28, 2025
b6a589f
Update mmtk-core dep, add tests
qinsoon Jul 29, 2025
22fbc69
Run ConcurrentImmix without compressed pointer.
qinsoon Jul 29, 2025
5018b70
Run ConcurrentImmix with larger heap
qinsoon Jul 30, 2025
ded5dcb
Add heap factor to artifact name
qinsoon Jul 30, 2025
2c739a1
Update mmtk-core. Run conix with 6x heap.
qinsoon Jul 31, 2025
15ca15c
Fix metadata shifting.
wks Jul 31, 2025
772bb1a
Rename CI jobs
qinsoon Jul 31, 2025
f8be111
Update mmtk-core (schedule_concurrent_packets before resuming mutators)
qinsoon Jul 31, 2025
5aa00cd
CI: Use 7x min heap. Use compressed pointer.
qinsoon Jul 31, 2025
cae60f1
mmtk-core renamed load_reference to load_weak_reference
wks Aug 1, 2025
6b04936
Update mmtk-core, fix style check
qinsoon Aug 5, 2025
5657658
Merge branch 'master' into concurrent-immix
qinsoon Aug 5, 2025
b120bae
Run ConcurrentImmix without weak refs
qinsoon Aug 6, 2025
b0109ed
Pass DecoratorSet to MMTk's object_reference_write_pre/post. Skip
qinsoon Aug 6, 2025
803f57b
Revert "Run ConcurrentImmix without weak refs"
qinsoon Aug 6, 2025
69512a0
Revert "Pass DecoratorSet to MMTk's object_reference_write_pre/post. …
qinsoon Aug 6, 2025
0d869df
Update mmtk-core (ref enqueue workaround)
qinsoon Aug 6, 2025
948db29
Update mmtk-core (ConcurrentPlan and trace object refactoring)
qinsoon Aug 13, 2025
3f437d0
Update mmtk-core (minor fix)
qinsoon Aug 14, 2025
d141c5f
Update mmtk-core (wrong assertions)
qinsoon Aug 14, 2025
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
16 changes: 1 addition & 15 deletions .github/configs/base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ suites:
type: DaCapo
# Need running-ng to support 23.9
release: evaluation
# This is expanded in CI when we run with the config.
path: "DACAPO_PATH/dacapo-23.9-RC3-chopin.jar"
minheap: mmtk-openjdk-11-MarkCompact
# Min heap values are from dacapo-evaluation-git-04132797
Expand Down Expand Up @@ -90,18 +91,3 @@ runtimes:
type: OpenJDK
release: 11
home: "/home/runner/work/mmtk-openjdk/mmtk-openjdk/bundles/jdk"

configs:
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-SemiSpace"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-GenCopy"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-Immix"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-GenImmix"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-StickyImmix"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-MarkSweep"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-MarkCompact"
# TODO: We need to disable compressed oops for Compressor temporarily until it supports
# discontiguous spaces.
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|no_compressed_oops|mmtk_gc-Compressor"

benchmarks:
dacapo-23.9-RC3-chopin-ci:
9 changes: 9 additions & 0 deletions .github/configs/large-heap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
includes:
- "./base.yml"

configs:
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-ConcurrentImmix"

# This will be expanded in CI when we run with the config. Keep a new line at the end.
benchmarks:
dacapo-23.9-RC3-chopin-ci:
18 changes: 18 additions & 0 deletions .github/configs/normal-heap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
includes:
- "./base.yml"

configs:
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-SemiSpace"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-GenCopy"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-Immix"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-GenImmix"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-StickyImmix"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-MarkSweep"
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|mmtk_gc-MarkCompact"
# TODO: We need to disable compressed oops for Compressor temporarily until it supports
# discontiguous spaces.
- "jdk11-master|ms|s|fail_on_oom|tph|preserve|no_compressed_oops|mmtk_gc-Compressor"

# This will be expanded in CI when we run with the config. Keep a new line at the end.
benchmarks:
dacapo-23.9-RC3-chopin-ci:
38 changes: 38 additions & 0 deletions .github/scripts/ci-expected-results.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
batik:
SemiSpace: pass
GenCopy: pass
Expand All @@ -19,6 +20,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
biojava:
SemiSpace: pass
GenCopy: pass
Expand All @@ -28,6 +30,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
cassandra:
SemiSpace: pass
GenCopy: pass
Expand All @@ -37,6 +40,7 @@ results:
MarkSweep: ignore
MarkCompact: ignore
Compressor: ignore
ConcurrentImmix: ignore
eclipse:
SemiSpace: pass
GenCopy: pass
Expand All @@ -46,6 +50,7 @@ results:
MarkSweep: ignore
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
fop:
SemiSpace: pass
GenCopy: pass
Expand All @@ -55,6 +60,7 @@ results:
MarkSweep: ignore
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
graphchi:
SemiSpace: pass
GenCopy: pass
Expand All @@ -64,6 +70,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
h2:
SemiSpace: pass
GenCopy: pass
Expand All @@ -73,6 +80,7 @@ results:
MarkSweep: ignore
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
h2o:
SemiSpace: pass
GenCopy: pass
Expand All @@ -82,6 +90,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
jme:
SemiSpace: pass
GenCopy: pass
Expand All @@ -91,6 +100,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
jython:
SemiSpace: pass
GenCopy: pass
Expand All @@ -100,6 +110,7 @@ results:
MarkSweep: ignore
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
kafka:
SemiSpace: pass
GenCopy: pass
Expand All @@ -109,6 +120,7 @@ results:
MarkSweep: pass
MarkCompact: ignore
Compressor: pass
ConcurrentImmix: pass
luindex:
SemiSpace: pass
GenCopy: pass
Expand All @@ -118,6 +130,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
lusearch:
SemiSpace: pass
GenCopy: pass
Expand All @@ -127,6 +140,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
pmd:
SemiSpace: pass
GenCopy: pass
Expand All @@ -136,6 +150,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
sunflow:
SemiSpace: pass
GenCopy: pass
Expand All @@ -145,6 +160,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
tomcat:
SemiSpace: pass
GenCopy: pass
Expand All @@ -154,6 +170,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
xalan:
SemiSpace: pass
GenCopy: pass
Expand All @@ -163,6 +180,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
zxing:
SemiSpace: pass
GenCopy: pass
Expand All @@ -172,6 +190,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass

release:
avrora:
Expand All @@ -183,6 +202,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
batik:
SemiSpace: pass
GenCopy: pass
Expand All @@ -192,6 +212,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
biojava:
SemiSpace: pass
GenCopy: pass
Expand All @@ -201,6 +222,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
cassandra:
SemiSpace: pass
GenCopy: pass
Expand All @@ -210,6 +232,7 @@ results:
MarkSweep: ignore
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
eclipse:
SemiSpace: pass
GenCopy: pass
Expand All @@ -219,6 +242,7 @@ results:
MarkSweep: ignore
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
fop:
SemiSpace: pass
GenCopy: pass
Expand All @@ -228,6 +252,7 @@ results:
MarkSweep: ignore
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
graphchi:
SemiSpace: pass
GenCopy: pass
Expand All @@ -237,6 +262,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
h2:
SemiSpace: pass
GenCopy: pass
Expand All @@ -246,6 +272,7 @@ results:
MarkSweep: ignore
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
h2o:
SemiSpace: pass
GenCopy: pass
Expand All @@ -255,6 +282,7 @@ results:
MarkSweep: ignore
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
jme:
SemiSpace: pass
GenCopy: pass
Expand All @@ -264,6 +292,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
jython:
SemiSpace: pass
GenCopy: pass
Expand All @@ -273,6 +302,7 @@ results:
MarkSweep: ignore
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
kafka:
SemiSpace: pass
GenCopy: pass
Expand All @@ -282,6 +312,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
luindex:
SemiSpace: pass
GenCopy: pass
Expand All @@ -291,6 +322,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
lusearch:
SemiSpace: pass
GenCopy: pass
Expand All @@ -300,6 +332,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
pmd:
SemiSpace: pass
GenCopy: pass
Expand All @@ -309,6 +342,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
sunflow:
SemiSpace: pass
GenCopy: pass
Expand All @@ -318,6 +352,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
tomcat:
SemiSpace: pass
GenCopy: pass
Expand All @@ -327,6 +362,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
xalan:
SemiSpace: ignore
GenCopy: ignore
Expand All @@ -336,6 +372,7 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
zxing:
SemiSpace: pass
GenCopy: pass
Expand All @@ -345,3 +382,4 @@ results:
MarkSweep: pass
MarkCompact: pass
Compressor: pass
ConcurrentImmix: pass
10 changes: 5 additions & 5 deletions .github/scripts/ci-matrix-result-check.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
import os
import re

if len(sys.argv) < 5:
if len(sys.argv) < 6:
raise ValueError("Invalid arguments")

script_dir = os.path.dirname(os.path.abspath(__file__));
config_path = os.path.join(script_dir, "..", "configs", "base.yml")
script_dir = os.path.dirname(os.path.abspath(__file__))
expected_results_path = os.path.join(script_dir, "ci-expected-results.yml")

arch = sys.argv[1]
build = sys.argv[2]
benchmark = sys.argv[3]
log_dir = sys.argv[4]
config_file = sys.argv[5]

def read_in_plans():
def read_in_plans(config_path):
# Load the YAML file
with open(config_path, "r") as f:
data = yaml.safe_load(f)
Expand Down Expand Up @@ -119,7 +119,7 @@ def print_log(directory, search_string):
print(f"----------------------------------------------")

# dict['a'] = 'SemiSpace', etc
plan_dict = read_in_plans()
plan_dict = read_in_plans(config_file)

actual = read_in_actual_results(sys.stdin.readline(), plan_dict)
expected = read_in_expected_results(build, benchmark)
Expand Down
1 change: 1 addition & 0 deletions .github/scripts/ci-test-minimal.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ MMTK_PLAN=MarkCompact runbms_dacapo2006_with_heap_multiplier fop 4
# TODO: Need to temporarily disable compressed oops for the Compressor until it supports
# discontiguous spaces.
MMTK_PLAN=Compressor runbms_dacapo2006_with_heap_multiplier fop 4 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers
MMTK_PLAN=ConcurrentImmix runbms_dacapo2006_with_heap_multiplier fop 4 -XX:-UseCompressedOops -XX:-UseCompressedClassPointers
MMTK_PLAN=MarkSweep runbms_dacapo2006_with_heap_multiplier fop 8
MMTK_PLAN=NoGC runbms_dacapo2006_with_heap_size fop 1000 1000
# Test heap resizing
Expand Down
Loading
Loading