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

Bring a few minor GC patches from upstream #163

Merged
merged 7 commits into from
Jul 3, 2024
Merged

Conversation

d-netto
Copy link
Member

@d-netto d-netto commented Jun 28, 2024

PR Description

Brings minor performance improvements, an enhancement to the page profiler and a NFC (doc-string fix) that we merged upstream.

Good to bring these to make sure we don't fall too behind the upstream GC.

Checklist

Requirements for merging:

Should allow us to access fewer pages on the circular buffers owned by
these work-stealing queues.
Tag the lowest bit of a pointer to indicate it's in the remset and
enqueue objects in the remset for later processing when GC threads have
woken up, instead of sequentially marking them all at once.

In principle, this should allow for more parallelism in the mark phase,
though I didn't benchmark it yet.
Instead of just printing `Tuple`, print the full type signature such as
`Tuple{UnionAll, GenericMemory{:not_atomic, Tuple{Int64, Int64,
Array{Pair{Any, Any}, 1}}, Core.AddrSpace{Core}(0x00)}, Int64}`
Not sure why we're not using it, but we probably should.
Simplifies handling of buffered pages by keeping them in a single place (`global_page_pool_lazily_freed`) instead of making them thread local. Performance has been assessed on the serial & multithreaded GCBenchmarks and it has shown to be performance neutral.
@d-netto d-netto requested a review from kpamnany June 28, 2024 21:01
@github-actions github-actions bot added port-to-v1.10 This change should apply to Julia v1.10 builds port-to-master This change should apply to all future Julia builds labels Jun 28, 2024
@d-netto d-netto removed the port-to-master This change should apply to all future Julia builds label Jun 28, 2024
@d-netto d-netto merged commit 454ed8c into v1.10.2+RAI Jul 3, 2024
5 checks passed
@d-netto d-netto deleted the dcn-gc-patches branch July 3, 2024 19:08
nickrobinson251 pushed a commit that referenced this pull request Sep 11, 2024
Stdlib: Tar
URL: https://github.com/JuliaIO/Tar.jl.git
Stdlib branch: master
Julia branch: master
Old commit: 81888a3
New commit: 1114260
Julia version: 1.12.0-DEV
Tar version: 1.10.0(Does not match)
Bump invoked by: @StefanKarpinski
Powered by:
[BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl)

Diff:
JuliaIO/Tar.jl@81888a3...1114260

```
$ git log --oneline 81888a3..1114260
1114260 Accept other string types for all string arguments (fix #179) (#180)
a2e39d6 Bump julia-actions/cache from 1 to 2 (#178)
152d12e Bump julia-actions/setup-julia from 1 to 2 (#177)
5012536 Fix Codecov (#176)
9b5460b Add `public` declarations using `eval` (#175)
4e9d73a Add docstring for Tar module (#173)
38a4bf4 Bump codecov/codecov-action from 3 to 4 (#172)
166deb3 [CI] Switch to `julia-actions/cache` (#171)
d0085d8 Hardcode doc edit backlink (#164)
7e83ed7 [NFC] fix some wonky formatting (#168)
6269b5b Bump actions/checkout from 3 to 4 (#163)
```

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
port-to-v1.10 This change should apply to Julia v1.10 builds
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants