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

Request a minor GC if marking has failed to start since the last slice. #3333

Merged

Conversation

NickBarnes
Copy link
Contributor

This fixes a problem found by @stedolan while reviewing ocaml/ocaml#13580, which upstreams the mark-delay GC change (#2348 / #2358 / #3029). The problem is due to the fact that marking is requested in one slice, but then actually begun on the next minor GC. If insufficient allocation takes place to trigger a minor GC, successive major slices may occur without the major GC progressing. This is now detected on the following slice: if no sweeping is available and yet marking has not started, a minor GC is requested.

This is one of the three fixes in #3297, which @mshinwell asked to be separated out.

Co-authored-by: Stephen Dolan <sdolan@janestreet.com>
@mshinwell mshinwell merged commit eee3040 into ocaml-flambda:main Dec 3, 2024
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants