Skip to content
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

Adding support for MMTk (non-moving immix) #56288

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

udesou
Copy link
Contributor

@udesou udesou commented Oct 22, 2024

This PR adds the possibility of building/running Julia using MMTk, running non-moving immix.
The binding code (Rust) associated with it is in https://github.com/mmtk/mmtk-julia/tree/upstream-ready/immix. Instructions on how to build/run Julia with MMTk are described in the README file inside the binding repo.

@udesou udesou changed the title Adding non-moving immix Adding support for MMTk (non-moving immix) Oct 22, 2024
src/gc-mmtk.c Outdated Show resolved Hide resolved
@nsajko nsajko added the GC Garbage collector label Oct 22, 2024
src/llvm-late-gc-lowering.cpp Outdated Show resolved Hide resolved
src/llvm-late-gc-lowering.cpp Outdated Show resolved Hide resolved
@udesou udesou force-pushed the upstream-ready/immix branch 4 times, most recently from 5257d4a to 4621e5c Compare October 25, 2024 03:42
@udesou udesou marked this pull request as ready for review October 25, 2024 03:46
Copy link
Member

@d-netto d-netto left a comment

Choose a reason for hiding this comment

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

First review pass.

Will follow-up with more comments soon.

src/Makefile Outdated Show resolved Hide resolved
src/builtins.c Outdated Show resolved Hide resolved
src/gc-mmtk.h Outdated Show resolved Hide resolved
src/gc-mmtk.h Outdated Show resolved Hide resolved
src/gc-tls.h Outdated Show resolved Hide resolved
src/llvm-gc-interface-passes.h Outdated Show resolved Hide resolved
@udesou udesou force-pushed the upstream-ready/immix branch 4 times, most recently from 3e68f3c to 6a01c26 Compare December 2, 2024 04:53
@udesou udesou force-pushed the upstream-ready/immix branch from 6a01c26 to bc08a9b Compare December 3, 2024 09:13
src/gc-interface.h Outdated Show resolved Hide resolved
src/gc-interface.h Show resolved Hide resolved
src/gc-stock.c Show resolved Hide resolved
src/gc-stock.c Show resolved Hide resolved
src/gc-stock.c Outdated Show resolved Hide resolved
src/threading.c Outdated Show resolved Hide resolved
src/gc-mmtk.c Outdated Show resolved Hide resolved
stdlib/REPL/src/REPL.jl Outdated Show resolved Hide resolved
src/gc-common.c Show resolved Hide resolved
src/gc-common.h Outdated Show resolved Hide resolved
src/gc-stock.c Outdated Show resolved Hide resolved
src/gc-mmtk.c Outdated Show resolved Hide resolved
src/gc-stock.c Show resolved Hide resolved
@udesou udesou force-pushed the upstream-ready/immix branch 7 times, most recently from 167c10f to c6fd2d9 Compare December 10, 2024 02:21
src/gc-mmtk.c Outdated Show resolved Hide resolved
base/timing.jl Outdated Show resolved Hide resolved
contrib/refresh_checksums.mk Outdated Show resolved Hide resolved
src/gc-common.h Outdated Show resolved Hide resolved
src/gc-mmtk.c Outdated Show resolved Hide resolved
src/gc-mmtk.c Outdated Show resolved Hide resolved
@maleadt
Copy link
Member

maleadt commented Dec 13, 2024

In any case, I had to restart PkgEval, so re-triggering:

@nanosoldier runtests()

@nanosoldier
Copy link
Collaborator

The package evaluation job you requested has completed - possible new issues were detected.
The full report is available.

@udesou udesou force-pushed the upstream-ready/immix branch 5 times, most recently from 2567f15 to dc89ced Compare December 16, 2024 22:17
@NHDaly
Copy link
Member

NHDaly commented Dec 16, 2024

run a PkgEval on Julia built with MMTk.

From discussion: We should not block this PR on a PkgEval run w/ MMTk. If we are happy w/ the PkgEval results from this PR with stock GC, this should be ready to merge.

This PR is just a refactoring and introducing a new GC behind a flag. It could be that literally nothing works with the MMTk GC, and that's fine - we will iterate in future PRs. This PR is just to get the new GC option in, and unit tests passing, to keep it stable.

I'm still interested in doing that PkgEval with MMTk, but IMO that should be a follow-up step (which you could drive from a separate PR).


EDIT: To be clear, we should not put this in release notes or advertise it to users, nor make any stability claims, until we've run PkgEval and much more! But just merging this first step is totally fine.

@udesou udesou requested a review from gbaraldi December 17, 2024 04:04
@udesou udesou force-pushed the upstream-ready/immix branch 4 times, most recently from ef16f55 to 5c7dfd5 Compare December 17, 2024 22:34
@udesou
Copy link
Contributor Author

udesou commented Dec 17, 2024

@nanosoldier runtests(["EarlyStopping", "Malt", "NearestNeighbors", "BPGates", "IMFData", "NCEI", "OptimizationPRIMA", "JUDI", "TaylorIntegration", "KolmogorovArnold", "DynamicalSystemsBase", "DiffEqDevTools", "MicroCanonicalHMC", "CellMLToolkit", "FlightSims", "SpiDy", "QuantumAnnealing", "Modia", "MRIgeneralizedBloch", "SideKicks"])

@oscardssmith
Copy link
Member

"Malt", and "NearestNeighbors" are clear. Gabriel and I were seeing semi-random segfaults on them on nightly.

@udesou
Copy link
Contributor Author

udesou commented Dec 17, 2024

"Malt", and "NearestNeighbors" are clear. Gabriel and I were seeing semi-random segfaults on them on nightly.

Good to know. I commented again because I'm not sure it actually triggered a rerun. Do I need specific privileges to run PkgEval?

@udesou udesou requested a review from d-netto December 17, 2024 22:46
@oscardssmith
Copy link
Member

yes, and it also needs the back ticks
@nanosoldier runtests(["EarlyStopping", "BPGates", "IMFData", "NCEI", "OptimizationPRIMA", "JUDI", "TaylorIntegration", "KolmogorovArnold", "DynamicalSystemsBase", "DiffEqDevTools", "MicroCanonicalHMC", "CellMLToolkit", "FlightSims", "SpiDy", "QuantumAnnealing", "Modia", "MRIgeneralizedBloch", "SideKicks"])

@nanosoldier
Copy link
Collaborator

The package evaluation job you requested has completed - no new issues were detected.
The full report is available.

@udesou udesou force-pushed the upstream-ready/immix branch from 8edf616 to 27c5480 Compare December 18, 2024 19:18
@udesou
Copy link
Contributor Author

udesou commented Dec 18, 2024

It seems like PkgEval ran successfully with the stock GC. Given that @d-netto is on holidays, I’m not sure he’ll have time to look into this. @gbaraldi if you’re happy with the makefile changes, this should be ready to merge, I believe.

@oscardssmith
Copy link
Member

PkgEval came back fully clean.

@nanosoldier
Copy link
Collaborator

The package evaluation job you requested has completed - no new issues were detected.
The full report is available.

@udesou udesou force-pushed the upstream-ready/immix branch 2 times, most recently from 82826ef to 5644e19 Compare December 22, 2024 19:50
@udesou udesou force-pushed the upstream-ready/immix branch from 5644e19 to 4b415c4 Compare December 23, 2024 02:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GC Garbage collector
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants