From 1e50a2283a52a873c90bb0f926a64c9315ecbceb Mon Sep 17 00:00:00 2001 From: Yi Lin Date: Fri, 20 Feb 2026 00:17:35 +0000 Subject: [PATCH 1/6] Adapt to dyanmic side metadata address --- .github/scripts/build-test.sh | 34 ++++++++++++++++++++++++ .github/scripts/pgo-build.sh | 3 +++ mmtk/Cargo.lock | 4 +-- mmtk/Cargo.toml | 2 +- mmtk/src/lib.rs | 15 ++++++----- openjdk/barriers/mmtkUnlogBitBarrier.cpp | 6 ++--- openjdk/barriers/mmtkUnlogBitBarrier.hpp | 6 +++-- openjdk/mmtk.h | 6 ++--- openjdk/mmtkBarrierSet.hpp | 4 ++- openjdk/mmtkBarrierSetAssembler_x86.cpp | 4 +-- openjdk/mmtkBarrierSetC2.cpp | 4 +-- 11 files changed, 66 insertions(+), 22 deletions(-) create mode 100755 .github/scripts/build-test.sh diff --git a/.github/scripts/build-test.sh b/.github/scripts/build-test.sh new file mode 100755 index 00000000..282cdf31 --- /dev/null +++ b/.github/scripts/build-test.sh @@ -0,0 +1,34 @@ +#!/bin/bash +set -ex + +# PGO seems to have problems with incremental compilation or something else similar. +# PGO build might fail with error messages such as +# error: file `/tmp/$USER/pgo-data/merged.profdata` passed to `-C profile-use` does not exist. +# when the file clearly exists on disk. +# This happens on both 1.71.1 and 1.66.1, and running cargo clean prior to building seems to reliably work around the problem. +# We can remove this once the compiler bug is fixed. +pushd ../mmtk-openjdk/mmtk +cargo clean +popd + +DEBUG_LEVEL=fastdebug +sh configure --disable-warnings-as-errors --with-debug-level=$DEBUG_LEVEL + +# Compile with profiling support +RUSTFLAGS="-Cprofile-generate=/tmp/$USER/pgo-data" make CONF=linux-x86_64-server-$DEBUG_LEVEL THIRD_PARTY_HEAP=$PWD/../mmtk-openjdk/openjdk + +# Remove extraneous profiling data +# rm -rf /tmp/$USER/pgo-data/* + +# Profile using fop +MMTK_PLAN=ConcurrentImmix ./build/linux-x86_64-server-$DEBUG_LEVEL/jdk/bin/java --add-exports java.base/jdk.internal.ref=ALL-UNNAMED -XX:MetaspaceSize=500M -XX:+DisableExplicitGC -server -XX:+CrashOnOutOfMemoryError -XX:+UseThirdPartyHeap -Xms60M -Xmx60M -jar /usr/share/benchmarks/dacapo/dacapo-23.11-MR2-chopin.jar -n 1 fop + +# Merge profiling data +# /opt/rust/toolchains/1.92.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-profdata merge -o /tmp/$USER/pgo-data/merged.profdata /tmp/$USER/pgo-data + +# pushd ../mmtk-openjdk/mmtk +# cargo clean +# popd + +# Compile using profiling data +# RUSTFLAGS="-Cprofile-use=/tmp/$USER/pgo-data/merged.profdata -Cllvm-args=-pgo-warn-missing-function" make CONF=linux-x86_64-server-release THIRD_PARTY_HEAP=$PWD/../mmtk-openjdk/openjdk images diff --git a/.github/scripts/pgo-build.sh b/.github/scripts/pgo-build.sh index 4e18f682..d637cb13 100755 --- a/.github/scripts/pgo-build.sh +++ b/.github/scripts/pgo-build.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -ex # PGO seems to have problems with incremental compilation or something else similar. # PGO build might fail with error messages such as @@ -10,6 +11,8 @@ pushd ../mmtk-openjdk/mmtk cargo clean popd +sh configure --disable-warnings-as-errors --with-debug-level=release + # Compile with profiling support RUSTFLAGS="-Cprofile-generate=/tmp/$USER/pgo-data" make CONF=linux-x86_64-normal-server-release THIRD_PARTY_HEAP=$PWD/../mmtk-openjdk/openjdk images diff --git a/mmtk/Cargo.lock b/mmtk/Cargo.lock index 99a18e97..3b3a9254 100644 --- a/mmtk/Cargo.lock +++ b/mmtk/Cargo.lock @@ -494,7 +494,7 @@ dependencies = [ [[package]] name = "mmtk" version = "0.32.0" -source = "git+https://github.com/mmtk/mmtk-core.git?rev=105661429473dc141f940e981c04dc86e995daaa#105661429473dc141f940e981c04dc86e995daaa" +source = "git+https://github.com/qinsoon/mmtk-core.git?rev=39377a5d71df799ddc34199b57179777a9e96441#39377a5d71df799ddc34199b57179777a9e96441" dependencies = [ "atomic", "atomic-traits", @@ -530,7 +530,7 @@ dependencies = [ [[package]] name = "mmtk-macros" version = "0.32.0" -source = "git+https://github.com/mmtk/mmtk-core.git?rev=105661429473dc141f940e981c04dc86e995daaa#105661429473dc141f940e981c04dc86e995daaa" +source = "git+https://github.com/qinsoon/mmtk-core.git?rev=39377a5d71df799ddc34199b57179777a9e96441#39377a5d71df799ddc34199b57179777a9e96441" dependencies = [ "proc-macro-error", "proc-macro2", diff --git a/mmtk/Cargo.toml b/mmtk/Cargo.toml index 4873e737..51ad08e5 100644 --- a/mmtk/Cargo.toml +++ b/mmtk/Cargo.toml @@ -36,7 +36,7 @@ probe = "0.5" # - 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 = "105661429473dc141f940e981c04dc86e995daaa" } +mmtk = { git = "https://github.com/qinsoon/mmtk-core.git", rev = "39377a5d71df799ddc34199b57179777a9e96441" } # Uncomment the following to build locally # mmtk = { path = "../repos/mmtk-core" } diff --git a/mmtk/src/lib.rs b/mmtk/src/lib.rs index cd37988b..1c1460c6 100644 --- a/mmtk/src/lib.rs +++ b/mmtk/src/lib.rs @@ -124,16 +124,19 @@ pub struct OpenJDK_Upcalls { pub static mut UPCALLS: *const OpenJDK_Upcalls = null_mut(); #[no_mangle] -pub static GLOBAL_SIDE_METADATA_BASE_ADDRESS: uintptr_t = - mmtk::util::metadata::side_metadata::GLOBAL_SIDE_METADATA_BASE_ADDRESS.as_usize(); +pub extern "C" fn get_global_side_metadata_base_address() -> uintptr_t { + mmtk::util::metadata::side_metadata::global_side_metadata_base_address().as_usize() +} #[no_mangle] -pub static GLOBAL_SIDE_METADATA_VM_BASE_ADDRESS: uintptr_t = - mmtk::util::metadata::side_metadata::GLOBAL_SIDE_METADATA_VM_BASE_ADDRESS.as_usize(); +pub extern "C" fn get_global_side_metadata_vm_base_address() -> uintptr_t { + mmtk::util::metadata::side_metadata::global_side_metadata_vm_base_address().as_usize() +} #[no_mangle] -pub static VO_BIT_ADDRESS: uintptr_t = - mmtk::util::metadata::side_metadata::VO_BIT_SIDE_METADATA_ADDR.as_usize(); +pub extern "C" fn get_vo_bit_address() -> uintptr_t { + mmtk::util::metadata::side_metadata::vo_bit_side_metadata_addr().as_usize() +} #[no_mangle] pub static FREE_LIST_ALLOCATOR_SIZE: uintptr_t = diff --git a/openjdk/barriers/mmtkUnlogBitBarrier.cpp b/openjdk/barriers/mmtkUnlogBitBarrier.cpp index 0f87e3b2..5eb0f3b4 100644 --- a/openjdk/barriers/mmtkUnlogBitBarrier.cpp +++ b/openjdk/barriers/mmtkUnlogBitBarrier.cpp @@ -140,12 +140,12 @@ void MMTkUnlogBitBarrierSetC1::emit_check_unlog_bit_fast_path(LIRGenerator* gen, LIR_Opr addr = gen->new_register(T_OBJECT); __ move(src, addr); - // uint8_t* meta_addr = (uint8_t*) (UNLOG_BIT_BASE_ADDRESS + (addr >> 6)); + // uint8_t* meta_addr = (uint8_t*) (unlog_bit_base_address() + (addr >> 6)); LIR_Opr offset = gen->new_pointer_register(); __ move(addr, offset); __ unsigned_shift_right(offset, 6, offset); LIR_Opr base = gen->new_pointer_register(); - __ move(LIR_OprFact::longConst(UNLOG_BIT_BASE_ADDRESS), base); + __ move(LIR_OprFact::longConst(unlog_bit_base_address()), base); LIR_Address* meta_addr = new LIR_Address(base, offset, T_BYTE); // uint8_t byte_val = *meta_addr; @@ -191,7 +191,7 @@ void MMTkUnlogBitBarrierSetC1::object_reference_write_pre_or_post(LIRAccess& acc Node* MMTkUnlogBitBarrierSetC2::emit_check_unlog_bit_fast_path(MMTkIdealKit& ideal, Node* obj) { Node* addr = __ CastPX(__ ctrl(), obj); Node* no_base = __ top(); - Node* meta_addr = __ AddP(no_base, __ ConP(UNLOG_BIT_BASE_ADDRESS), __ URShiftX(addr, __ ConI(6))); + Node* meta_addr = __ AddP(no_base, __ ConP(unlog_bit_base_address()), __ URShiftX(addr, __ ConI(6))); Node* byte = __ load(__ ctrl(), meta_addr, TypeInt::INT, T_BYTE, Compile::AliasIdxRaw); Node* shift = __ URShiftX(addr, __ ConI(3)); shift = __ AndI(__ ConvL2I(shift), __ ConI(7)); diff --git a/openjdk/barriers/mmtkUnlogBitBarrier.hpp b/openjdk/barriers/mmtkUnlogBitBarrier.hpp index ec4e0ac2..772338cd 100644 --- a/openjdk/barriers/mmtkUnlogBitBarrier.hpp +++ b/openjdk/barriers/mmtkUnlogBitBarrier.hpp @@ -10,7 +10,9 @@ struct MMTkC1UnlogBitBarrierSlowPathStub; -const uintptr_t UNLOG_BIT_BASE_ADDRESS = GLOBAL_SIDE_METADATA_VM_BASE_ADDRESS; +inline uintptr_t unlog_bit_base_address() { + return get_global_side_metadata_vm_base_address(); +} //////////////////// Runtime //////////////////// @@ -18,7 +20,7 @@ class MMTkUnlogBitBarrierSetRuntime: public MMTkBarrierSetRuntime { protected: static bool is_unlog_bit_set(oop obj) { uintptr_t addr = (uintptr_t) (void*) obj; - uint8_t* meta_addr = (uint8_t*) (UNLOG_BIT_BASE_ADDRESS + (addr >> 6)); + uint8_t* meta_addr = (uint8_t*) (unlog_bit_base_address() + (addr >> 6)); uintptr_t shift = (addr >> 3) & 0b111; uint8_t byte_val = *meta_addr; return ((byte_val >> shift) & 1) == 1; diff --git a/openjdk/mmtk.h b/openjdk/mmtk.h index da750071..210dc907 100644 --- a/openjdk/mmtk.h +++ b/openjdk/mmtk.h @@ -18,9 +18,9 @@ typedef enum { MmapOutOfMemory, } MMTkAllocationError; -extern const uintptr_t GLOBAL_SIDE_METADATA_BASE_ADDRESS; -extern const uintptr_t GLOBAL_SIDE_METADATA_VM_BASE_ADDRESS; -extern const uintptr_t VO_BIT_ADDRESS; +extern uintptr_t get_global_side_metadata_base_address(); +extern uintptr_t get_global_side_metadata_vm_base_address(); +extern uintptr_t get_vo_bit_address(); extern const size_t MMTK_MARK_COMPACT_HEADER_RESERVED_IN_BYTES; extern const uintptr_t FREE_LIST_ALLOCATOR_SIZE; extern uint8_t CONCURRENT_MARKING_ACTIVE; diff --git a/openjdk/mmtkBarrierSet.hpp b/openjdk/mmtkBarrierSet.hpp index d1494307..0ceed784 100644 --- a/openjdk/mmtkBarrierSet.hpp +++ b/openjdk/mmtkBarrierSet.hpp @@ -41,7 +41,9 @@ extern bool mmtk_enable_allocation_fastpath; extern bool mmtk_enable_barrier_fastpath; extern bool mmtk_enable_reference_load_barrier; -const intptr_t VO_BIT_BASE_ADDRESS = VO_BIT_ADDRESS; +inline intptr_t vo_bit_base_address() { + return static_cast(get_vo_bit_address()); +} struct MMTkAllocatorOffsets { int tlab_top_offset; diff --git a/openjdk/mmtkBarrierSetAssembler_x86.cpp b/openjdk/mmtkBarrierSetAssembler_x86.cpp index fdb4ae9b..ff8c6a76 100644 --- a/openjdk/mmtkBarrierSetAssembler_x86.cpp +++ b/openjdk/mmtkBarrierSetAssembler_x86.cpp @@ -110,7 +110,7 @@ void MMTkBarrierSetAssembler::eden_allocate(MacroAssembler* masm, Register threa // tmp2 = load-byte (SIDE_METADATA_BASE_ADDRESS + (obj >> 6)); __ movptr(tmp3, obj); __ shrptr(tmp3, 6); - __ movptr(tmp2, VO_BIT_BASE_ADDRESS); + __ movptr(tmp2, vo_bit_base_address()); __ movb(tmp2, Address(tmp2, tmp3)); // tmp3 = 1 << ((obj >> 3) & 7) // 1. rcx = (obj >> 3) & 7 @@ -126,7 +126,7 @@ void MMTkBarrierSetAssembler::eden_allocate(MacroAssembler* masm, Register threa // store-byte tmp2 (SIDE_METADATA_BASE_ADDRESS + (obj >> 6)) __ movptr(tmp3, obj); __ shrptr(tmp3, 6); - __ movptr(rcx, VO_BIT_BASE_ADDRESS); + __ movptr(rcx, vo_bit_base_address()); __ movb(Address(rcx, tmp3), tmp2); } diff --git a/openjdk/mmtkBarrierSetC2.cpp b/openjdk/mmtkBarrierSetC2.cpp index 226b9a7d..e9042f30 100644 --- a/openjdk/mmtkBarrierSetC2.cpp +++ b/openjdk/mmtkBarrierSetC2.cpp @@ -279,7 +279,7 @@ void MMTkBarrierSetC2::expand_allocate(PhaseMacroExpand* x, if (enable_vo_bit || selector.tag == TAG_MARK_COMPACT) { // set the alloc bit: // intptr_t addr = (intptr_t) (void*) fast_oop; - // uint8_t* meta_addr = (uint8_t*) (VO_BIT_BASE_ADDRESS + (addr >> 6)); + // uint8_t* meta_addr = (uint8_t*) (vo_bit_base_address() + (addr >> 6)); // intptr_t shift = (addr >> 3) & 0b111; // uint8_t byte_val = *meta_addr; // uint8_t new_byte_val = byte_val | (1 << shift); @@ -293,7 +293,7 @@ void MMTkBarrierSetC2::expand_allocate(PhaseMacroExpand* x, Node *meta_offset = new URShiftLNode(obj_addr, addr_shift); x->transform_later(meta_offset); - Node *meta_base = ConLNode::make(VO_BIT_BASE_ADDRESS); + Node *meta_base = ConLNode::make(vo_bit_base_address()); x->transform_later(meta_base); Node *meta_addr = new AddLNode(meta_base, meta_offset); From 3ba9fb6b03c89080b6ef7dd0280881ba1cebde05 Mon Sep 17 00:00:00 2001 From: Yi Lin Date: Thu, 5 Mar 2026 23:58:26 +0000 Subject: [PATCH 2/6] Fix --- mmtk/Cargo.lock | 4 ++-- mmtk/Cargo.toml | 2 +- openjdk/barriers/mmtkUnlogBitBarrier.cpp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mmtk/Cargo.lock b/mmtk/Cargo.lock index 3b3a9254..5523acd2 100644 --- a/mmtk/Cargo.lock +++ b/mmtk/Cargo.lock @@ -494,7 +494,7 @@ dependencies = [ [[package]] name = "mmtk" version = "0.32.0" -source = "git+https://github.com/qinsoon/mmtk-core.git?rev=39377a5d71df799ddc34199b57179777a9e96441#39377a5d71df799ddc34199b57179777a9e96441" +source = "git+https://github.com/qinsoon/mmtk-core.git?rev=fa6c31780557add59f37a514ee941e459ef82ed9#fa6c31780557add59f37a514ee941e459ef82ed9" dependencies = [ "atomic", "atomic-traits", @@ -530,7 +530,7 @@ dependencies = [ [[package]] name = "mmtk-macros" version = "0.32.0" -source = "git+https://github.com/qinsoon/mmtk-core.git?rev=39377a5d71df799ddc34199b57179777a9e96441#39377a5d71df799ddc34199b57179777a9e96441" +source = "git+https://github.com/qinsoon/mmtk-core.git?rev=fa6c31780557add59f37a514ee941e459ef82ed9#fa6c31780557add59f37a514ee941e459ef82ed9" dependencies = [ "proc-macro-error", "proc-macro2", diff --git a/mmtk/Cargo.toml b/mmtk/Cargo.toml index 51ad08e5..2ad1c57a 100644 --- a/mmtk/Cargo.toml +++ b/mmtk/Cargo.toml @@ -36,7 +36,7 @@ probe = "0.5" # - change branch # - change repo name # But other changes including adding/removing whitespaces in commented lines may break the CI. -mmtk = { git = "https://github.com/qinsoon/mmtk-core.git", rev = "39377a5d71df799ddc34199b57179777a9e96441" } +mmtk = { git = "https://github.com/qinsoon/mmtk-core.git", rev = "fa6c31780557add59f37a514ee941e459ef82ed9" } # Uncomment the following to build locally # mmtk = { path = "../repos/mmtk-core" } diff --git a/openjdk/barriers/mmtkUnlogBitBarrier.cpp b/openjdk/barriers/mmtkUnlogBitBarrier.cpp index 5eb0f3b4..5dd41df8 100644 --- a/openjdk/barriers/mmtkUnlogBitBarrier.cpp +++ b/openjdk/barriers/mmtkUnlogBitBarrier.cpp @@ -14,10 +14,10 @@ void MMTkUnlogBitBarrierSetAssembler::emit_check_unlog_bit_fast_path(MacroAssemb // not the `tmp1` and `tmp2` from `store_at`. assert_different_registers(obj, tmp1, tmp2); - // tmp2 = load-byte (UNLOG_BIT_BASE_ADDRESS + (obj >> 6)); + // tmp2 = load-byte (unlog_bit_base_address() + (obj >> 6)); __ movptr(tmp1, obj); __ shrptr(tmp1, 6); - __ movptr(tmp2, (intptr_t)UNLOG_BIT_BASE_ADDRESS); + __ movptr(tmp2, (intptr_t)unlog_bit_base_address()); __ movb(tmp2, Address(tmp2, tmp1)); // tmp1 = (obj >> 3) & 7 __ movptr(tmp1, obj); From e13ad146cd89c9c5ee1b34e741ae4a6409ab41ca Mon Sep 17 00:00:00 2001 From: Yi Lin Date: Tue, 7 Apr 2026 01:17:13 +0000 Subject: [PATCH 3/6] Update mmtk-core --- mmtk/Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mmtk/Cargo.toml b/mmtk/Cargo.toml index 2ad1c57a..b5c7cfed 100644 --- a/mmtk/Cargo.toml +++ b/mmtk/Cargo.toml @@ -36,7 +36,7 @@ probe = "0.5" # - change branch # - change repo name # But other changes including adding/removing whitespaces in commented lines may break the CI. -mmtk = { git = "https://github.com/qinsoon/mmtk-core.git", rev = "fa6c31780557add59f37a514ee941e459ef82ed9" } +mmtk = { git = "https://github.com/qinsoon/mmtk-core.git", rev = "825c634592f8f16f439f74c656081347cfd0d6de" } # Uncomment the following to build locally # mmtk = { path = "../repos/mmtk-core" } @@ -44,7 +44,7 @@ mmtk = { git = "https://github.com/qinsoon/mmtk-core.git", rev = "fa6c31780557ad built = { version = "0.7.7", features = ["git2"] } [features] -default = [] +default = ["mmtk/work_packet_stats"] mmtk_extreme_assertions = ["mmtk/extreme_assertions"] nogc_lock_free = ["mmtk/nogc_lock_free"] nogc_no_zeroing = ["mmtk/nogc_no_zeroing"] From 05d32797affd627b7a426bd04423bfbc08805b46 Mon Sep 17 00:00:00 2001 From: Yi Lin Date: Tue, 7 Apr 2026 03:58:44 +0000 Subject: [PATCH 4/6] Remove default features --- mmtk/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmtk/Cargo.toml b/mmtk/Cargo.toml index b5c7cfed..cc1b856a 100644 --- a/mmtk/Cargo.toml +++ b/mmtk/Cargo.toml @@ -44,7 +44,7 @@ mmtk = { git = "https://github.com/qinsoon/mmtk-core.git", rev = "825c634592f8f1 built = { version = "0.7.7", features = ["git2"] } [features] -default = ["mmtk/work_packet_stats"] +default = [] mmtk_extreme_assertions = ["mmtk/extreme_assertions"] nogc_lock_free = ["mmtk/nogc_lock_free"] nogc_no_zeroing = ["mmtk/nogc_no_zeroing"] From b46d892442f1136458b2eccfa41669413f8e4564 Mon Sep 17 00:00:00 2001 From: Yi Lin Date: Tue, 14 Apr 2026 04:00:57 +0000 Subject: [PATCH 5/6] Remove an unused script --- .github/scripts/build-test.sh | 34 ---------------------------------- .github/scripts/pgo-build.sh | 2 -- 2 files changed, 36 deletions(-) delete mode 100755 .github/scripts/build-test.sh diff --git a/.github/scripts/build-test.sh b/.github/scripts/build-test.sh deleted file mode 100755 index 282cdf31..00000000 --- a/.github/scripts/build-test.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -set -ex - -# PGO seems to have problems with incremental compilation or something else similar. -# PGO build might fail with error messages such as -# error: file `/tmp/$USER/pgo-data/merged.profdata` passed to `-C profile-use` does not exist. -# when the file clearly exists on disk. -# This happens on both 1.71.1 and 1.66.1, and running cargo clean prior to building seems to reliably work around the problem. -# We can remove this once the compiler bug is fixed. -pushd ../mmtk-openjdk/mmtk -cargo clean -popd - -DEBUG_LEVEL=fastdebug -sh configure --disable-warnings-as-errors --with-debug-level=$DEBUG_LEVEL - -# Compile with profiling support -RUSTFLAGS="-Cprofile-generate=/tmp/$USER/pgo-data" make CONF=linux-x86_64-server-$DEBUG_LEVEL THIRD_PARTY_HEAP=$PWD/../mmtk-openjdk/openjdk - -# Remove extraneous profiling data -# rm -rf /tmp/$USER/pgo-data/* - -# Profile using fop -MMTK_PLAN=ConcurrentImmix ./build/linux-x86_64-server-$DEBUG_LEVEL/jdk/bin/java --add-exports java.base/jdk.internal.ref=ALL-UNNAMED -XX:MetaspaceSize=500M -XX:+DisableExplicitGC -server -XX:+CrashOnOutOfMemoryError -XX:+UseThirdPartyHeap -Xms60M -Xmx60M -jar /usr/share/benchmarks/dacapo/dacapo-23.11-MR2-chopin.jar -n 1 fop - -# Merge profiling data -# /opt/rust/toolchains/1.92.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-profdata merge -o /tmp/$USER/pgo-data/merged.profdata /tmp/$USER/pgo-data - -# pushd ../mmtk-openjdk/mmtk -# cargo clean -# popd - -# Compile using profiling data -# RUSTFLAGS="-Cprofile-use=/tmp/$USER/pgo-data/merged.profdata -Cllvm-args=-pgo-warn-missing-function" make CONF=linux-x86_64-server-release THIRD_PARTY_HEAP=$PWD/../mmtk-openjdk/openjdk images diff --git a/.github/scripts/pgo-build.sh b/.github/scripts/pgo-build.sh index 89e30e2a..1c389e01 100755 --- a/.github/scripts/pgo-build.sh +++ b/.github/scripts/pgo-build.sh @@ -42,8 +42,6 @@ clean_binding_mmtk() { clean_binding_mmtk -sh configure --disable-warnings-as-errors --with-debug-level=release - # Compile with profiling support sh configure --disable-warnings-as-errors --with-debug-level=$OPENJDK_DEBUG_LEVEL RUSTFLAGS="-Cprofile-generate=$PROFILE_DATA_DIR" make CONF=$OPENJDK_CONFIG THIRD_PARTY_HEAP=$BINDING_OPENJDK_DIR images From 3e41ab903f0549eb6c133013d9b3ae7dd48323a9 Mon Sep 17 00:00:00 2001 From: mmtkgc-bot Date: Thu, 16 Apr 2026 05:46:45 +0000 Subject: [PATCH 6/6] Update mmtk-core to 37d81218028d788f7a24158aac0588c3f6925d08 --- mmtk/Cargo.lock | 4 ++-- mmtk/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mmtk/Cargo.lock b/mmtk/Cargo.lock index de79497f..106e4bee 100644 --- a/mmtk/Cargo.lock +++ b/mmtk/Cargo.lock @@ -582,7 +582,7 @@ dependencies = [ [[package]] name = "mmtk" version = "0.32.0" -source = "git+https://github.com/qinsoon/mmtk-core.git?rev=825c634592f8f16f439f74c656081347cfd0d6de#825c634592f8f16f439f74c656081347cfd0d6de" +source = "git+https://github.com/mmtk/mmtk-core.git?rev=37d81218028d788f7a24158aac0588c3f6925d08#37d81218028d788f7a24158aac0588c3f6925d08" dependencies = [ "atomic", "atomic-traits", @@ -618,7 +618,7 @@ dependencies = [ [[package]] name = "mmtk-macros" version = "0.32.0" -source = "git+https://github.com/qinsoon/mmtk-core.git?rev=825c634592f8f16f439f74c656081347cfd0d6de#825c634592f8f16f439f74c656081347cfd0d6de" +source = "git+https://github.com/mmtk/mmtk-core.git?rev=37d81218028d788f7a24158aac0588c3f6925d08#37d81218028d788f7a24158aac0588c3f6925d08" dependencies = [ "proc-macro-error", "proc-macro2", diff --git a/mmtk/Cargo.toml b/mmtk/Cargo.toml index cc1b856a..defb4a63 100644 --- a/mmtk/Cargo.toml +++ b/mmtk/Cargo.toml @@ -36,7 +36,7 @@ probe = "0.5" # - change branch # - change repo name # But other changes including adding/removing whitespaces in commented lines may break the CI. -mmtk = { git = "https://github.com/qinsoon/mmtk-core.git", rev = "825c634592f8f16f439f74c656081347cfd0d6de" } +mmtk = { git = "https://github.com/mmtk/mmtk-core.git", rev = "37d81218028d788f7a24158aac0588c3f6925d08" } # Uncomment the following to build locally # mmtk = { path = "../repos/mmtk-core" }