Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Register
  • Sign in
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 5.5k
    • Issues 5.5k
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 636
    • Merge requests 636
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #22929
Closed
Open
Issue created Feb 07, 2023 by Ben Gamari@bgamari🐢Maintainer

Implement sync-mark budgeting in nonmoving collector

One of the known weakness of the current iteration of the non-moving collector is that some workloads may induce long pauses in the post-mark sync phase of collection. Specifically, if the mutator grows a large update remembered set (or a large set of unmarked objects transitively reachable from the update remembered set) the non-moving collector will need to do a large amount of work serially during the stop-the-world pause. This can result in much longer pauses than desirable.

However, there is an easy solution here: assign a budget to the amount of marking we are willing to perform during the pause. If we find that we exceed our budget during the pause then we can allow the mutators to resume, proceed with marking concurrently, and try the sync again when we are done.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking