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

Safepoint without invalidation #1367

Merged
merged 2 commits into from
Dec 18, 2020
Merged

Safepoint without invalidation #1367

merged 2 commits into from
Dec 18, 2020

Conversation

kustosz
Copy link
Contributor

@kustosz kustosz commented Dec 18, 2020

Pull Request Description

Makes safepoints use a volatile boolean flag instead of an assumption. This results in 0%-40% slowdowns across our benchmark suites (where the impact becomes smaller, the more memory is involved). This should be revised when a better safepoint mechanism makes it into Truffle.

Important Notes

The safepoints are moved around – the approach we've taken so far ("safepoint on every method call") is not
sustainable with this solution (resulting in benchmarks becoming even 3x slower). Therefore safepoints are inserted:

  1. At the start of non-builtin non-inlined Enso methods.
  2. At the beginning of each @TailCall loop iteration.
    This may turn out to be too sparse, in which more poll calls can be sprinkled.

Checklist

Please include the following checklist in your PR:

  • The documentation has been updated if necessary.
  • All code conforms to the Scala, Java, and Rust style guides.
  • All documentation and configuration conforms to the markdown and YAML style guides.
  • All code has been tested where possible.

@kustosz kustosz added Type: Enhancement p-highest Should be completed ASAP labels Dec 18, 2020
@kustosz kustosz self-assigned this Dec 18, 2020
@kustosz kustosz merged commit 0840ff5 into main Dec 18, 2020
@kustosz kustosz deleted the wip/mk/bool-safepoints branch December 18, 2020 12:55
@4e6 4e6 mentioned this pull request Dec 29, 2020
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
p-highest Should be completed ASAP
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants