Skip to content

Commit f4fa7f2

Browse files
committed
Merge branch 'master' into use-ms-as-nonmoving
2 parents 0b9942a + 5ab62f9 commit f4fa7f2

33 files changed

+1318
-605
lines changed

.github/workflows/micro-bm.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
with:
6767
repository: mmtk/ci-perf-kit
6868
token: ${{ secrets.GITHUB_TOKEN }}
69-
ref: "0.7.4"
69+
ref: "0.7.5"
7070
path: ci-perf-kit
7171
submodules: true
7272
# Use rust-toolchain in the trunk (it doesnt matter much - if the toolchains defined in the trunk and the branch are different, we cant run anyway)

.github/workflows/perf-baseline.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
with:
4343
token: ${{ secrets.CI_ACCESS_TOKEN }}
4444
repository: mmtk/ci-perf-kit
45-
ref: "0.7.4"
45+
ref: "0.7.5"
4646
path: ci-perf-kit
4747
submodules: true
4848
# setup
@@ -94,7 +94,7 @@ jobs:
9494
with:
9595
token: ${{ secrets.CI_ACCESS_TOKEN }}
9696
repository: mmtk/ci-perf-kit
97-
ref: "0.7.4"
97+
ref: "0.7.5"
9898
path: ci-perf-kit
9999
submodules: true
100100
# setup

.github/workflows/perf-compare-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ jobs:
112112
with:
113113
repository: mmtk/ci-perf-kit
114114
token: ${{ secrets.CI_ACCESS_TOKEN }}
115-
ref: "0.7.4"
115+
ref: "0.7.5"
116116
path: ci-perf-kit
117117
submodules: true
118118
# setup
@@ -219,7 +219,7 @@ jobs:
219219
with:
220220
repository: mmtk/ci-perf-kit
221221
token: ${{ secrets.CI_ACCESS_TOKEN }}
222-
ref: "0.7.4"
222+
ref: "0.7.5"
223223
path: ci-perf-kit
224224
submodules: true
225225
# setup

.github/workflows/perf-regression-ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
uses: actions/checkout@v2
4646
with:
4747
repository: mmtk/ci-perf-kit
48-
ref: "0.7.4"
48+
ref: "0.7.5"
4949
path: ci-perf-kit
5050
token: ${{ secrets.CI_ACCESS_TOKEN }}
5151
submodules: true
@@ -116,7 +116,7 @@ jobs:
116116
uses: actions/checkout@v2
117117
with:
118118
repository: mmtk/ci-perf-kit
119-
ref: "0.7.4"
119+
ref: "0.7.5"
120120
path: ci-perf-kit
121121
token: ${{ secrets.CI_ACCESS_TOKEN }}
122122
submodules: true
@@ -191,7 +191,7 @@ jobs:
191191
uses: actions/checkout@v2
192192
with:
193193
repository: mmtk/ci-perf-kit
194-
ref: "0.7.4"
194+
ref: "0.7.5"
195195
path: ci-perf-kit
196196
token: ${{ secrets.CI_ACCESS_TOKEN }}
197197
submodules: true

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
0.24.0 (2024-04-08)
2+
===
3+
4+
## What's Changed
5+
6+
### Misc
7+
* Check and fix broken links in docs by @qinsoon in https://github.com/mmtk/mmtk-core/pull/1085
8+
* Allow binding to implement GC trigger by @qinsoon in https://github.com/mmtk/mmtk-core/pull/1083
9+
* Resolve issues for unit tests on 32 bits by @qinsoon in https://github.com/mmtk/mmtk-core/pull/1095
10+
* Use SFTDenseChunkMap on 64bits when vm_space is enabled by @qinsoon in https://github.com/mmtk/mmtk-core/pull/1094
11+
* Fix warnings with the stable Rust toolchain by @wks in https://github.com/mmtk/mmtk-core/pull/1099
12+
* Use proper logging for the treadmill by @wks in https://github.com/mmtk/mmtk-core/pull/1101
13+
14+
**Full Changelog**: https://github.com/mmtk/mmtk-core/compare/v0.23.0...v0.24.0
15+
116
0.23.0 (2024-02-09)
217
===
318

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mmtk"
3-
version = "0.23.0"
3+
version = "0.24.0"
44
authors = ["The MMTk Developers <>"]
55
edition = "2021"
66
license = "MIT OR Apache-2.0"
@@ -10,7 +10,7 @@ repository = "https://github.com/mmtk/mmtk-core"
1010
readme = "README.md"
1111
categories = ["memory-management"]
1212
keywords = ["gc", "garbage", "collection", "garbage-collection", "allocation"]
13-
rust-version = "1.70.0"
13+
rust-version = "1.71.1"
1414
build = "build.rs"
1515

1616
[lib]
@@ -38,7 +38,7 @@ log = { version = "0.4", features = ["max_level_trace", "release_max_level_off"]
3838
memoffset = "0.9"
3939
mimalloc-sys = { version = "0.1.6", optional = true }
4040
# MMTk macros - we have to specify a version here in order to publish the crate, even though we use the dependency from a local path.
41-
mmtk-macros = { version="0.23.0", path = "macros/" }
41+
mmtk-macros = { version="0.24.0", path = "macros/" }
4242
num_cpus = "1.8"
4343
num-traits = "0.2"
4444
pfm = { version = "0.1.1", optional = true }

docs/header/mmtk.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,6 @@ extern void mmtk_scan_region();
7878
// Request MMTk to trigger a GC. Note that this may not actually trigger a GC
7979
extern void mmtk_handle_user_collection_request(void* tls);
8080

81-
// Run the main loop for the GC controller thread. Does not return
82-
extern void mmtk_start_control_collector(void* tls, void* worker);
83-
8481
// Run the main loop for a GC worker. Does not return
8582
extern void mmtk_start_worker(void* tls, void* worker);
8683

macros/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "mmtk-macros"
33
# the macro crate uses the same version as mmtk-core
4-
version = "0.23.0"
4+
version = "0.24.0"
55
edition = "2021"
66
license = "MIT OR Apache-2.0"
77
description = "MMTk macros provides procedural macros used by mmtk-core."

rust-toolchain

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.71.1
1+
1.77.0

src/global_state.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
22
use std::sync::Mutex;
3+
use std::time::Instant;
4+
5+
use atomic_refcell::AtomicRefCell;
36

47
/// This stores some global states for an MMTK instance.
58
/// Some MMTK components like plans and allocators may keep an reference to the struct, and can access it.
@@ -15,6 +18,8 @@ pub struct GlobalState {
1518
pub(crate) initialized: AtomicBool,
1619
/// The current GC status.
1720
pub(crate) gc_status: Mutex<GcStatus>,
21+
/// When did the last GC start? Only accessed by the last parked worker.
22+
pub(crate) gc_start_time: AtomicRefCell<Option<Instant>>,
1823
/// Is the current GC an emergency collection? Emergency means we may run out of memory soon, and we should
1924
/// attempt to collect as much as we can.
2025
pub(crate) emergency_collection: AtomicBool,
@@ -195,6 +200,7 @@ impl Default for GlobalState {
195200
Self {
196201
initialized: AtomicBool::new(false),
197202
gc_status: Mutex::new(GcStatus::NotInGC),
203+
gc_start_time: AtomicRefCell::new(None),
198204
stacks_prepared: AtomicBool::new(false),
199205
emergency_collection: AtomicBool::new(false),
200206
user_triggered_collection: AtomicBool::new(false),

0 commit comments

Comments
 (0)