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 upstream GC patches into our fork #169

Merged
merged 5 commits into from
Jul 25, 2024

Conversation

d-netto
Copy link
Member

@d-netto d-netto commented Jul 22, 2024

PR Description

Should be NFCs or code simplifications.

JuliaLang#54936 is the only one which does more significant changes, but we already assessed its performance in the open-source benchmarks and internally as well.

Checklist

Requirements for merging:

d-netto and others added 5 commits July 22, 2024 14:32
Encapsulates all relevant GC thread-local-state into a separate
structure.

Motivation is that MMTk will have its own version of GC
thread-local-state, so doesn't need all of the Julia GC TLS.

In the future, folks who would be using MMTk would be setting a
pre-processor flag which would lead to either the stock Julia GC TLS or
MMTk's GC TLS to be included in `julia_threads.h`.

I.e., we would have something like:

```C
jl_gc_mmtk_tls_states mmtk_gc_tls;
jl_gc_tls_states gc_tls;
```
Simplifies the layout of the doubly linked list of big objects to make
it a bit more canonical: let's just store a pointer to the previous
element, instead of storing a "pointer to the next element of the
previous element". This should make the implementation a bit easier to
understand without incurring any memory overhead.

I ran the serial and multithreaded benchmarks from GCBenchmarks and this
seems fairly close to performance neutral on my machine. We also ran our
internal benchmarks on it at RAI and it looks fine from a correctness
and performance point of view.

---------

Co-authored-by: Kiran Pamnany <[email protected]>
Third-party GCs (e.g. MMTk) will probably have their own function to
spawn GC threads.
@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 Jul 22, 2024
@d-netto d-netto removed the port-to-master This change should apply to all future Julia builds label Jul 22, 2024
@d-netto d-netto requested a review from kpamnany July 24, 2024 13:29
@kpamnany
Copy link
Collaborator

Let's run benchmarks on this full commit set?

@d-netto
Copy link
Member Author

d-netto commented Jul 24, 2024

Let's run benchmarks on this full commit set?

Yes.

@d-netto
Copy link
Member Author

d-netto commented Jul 25, 2024

Ran the benchmarks in https://github.com/RelationalAI/raicode/pull/20439.

Copy link
Collaborator

@kpamnany kpamnany left a comment

Choose a reason for hiding this comment

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

❤️

@d-netto d-netto merged commit 5f234f0 into v1.10.2+RAI Jul 25, 2024
5 checks passed
@d-netto d-netto deleted the dcn-upstream-gc-patches branch July 25, 2024 16:12
github-actions bot pushed a commit that referenced this pull request Dec 17, 2024
…ang#56831)

Stdlib: Statistics
URL: https://github.com/JuliaStats/Statistics.jl.git
Stdlib branch: master
Julia branch: master
Old commit: 68869af
New commit: d49c2bf
Julia version: 1.12.0-DEV
Statistics version: 1.11.2(Does not match)
Bump invoked by: @DilumAluthge
Powered by:
[BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl)

Diff:
JuliaStats/Statistics.jl@68869af...d49c2bf

```
$ git log --oneline 68869af..d49c2bf
d49c2bf Merge pull request #178 from JuliaStats/dw/ci
d10d6a3 Update Project.toml
1b67c17 Merge pull request #168 from JuliaStats/andreasnoack-patch-2
c3721ed Add a coverage badge
8086523 Test earliest supported Julia version and prereleases
12a1976 Update codecov in ci.yml
2caf0eb Merge pull request #177 from JuliaStats/ViralBShah-patch-1
33e6e8b Update ci.yml to use julia-actions/cache
a399c19 Merge pull request #176 from JuliaStats/dependabot/github_actions/julia-actions/setup-julia-2
6b8d58a Merge branch 'master' into dependabot/github_actions/julia-actions/setup-julia-2
c2fb201 Merge pull request #175 from JuliaStats/dependabot/github_actions/actions/cache-4
8f808e4 Merge pull request #174 from JuliaStats/dependabot/github_actions/codecov/codecov-action-4
7f82133 Merge pull request #173 from JuliaStats/dependabot/github_actions/actions/checkout-4
046fb6f Update ci.yml
c0fc336 Bump julia-actions/setup-julia from 1 to 2
a95a57a Bump actions/cache from 1 to 4
b675501 Bump codecov/codecov-action from 1 to 4
0088c49 Bump actions/checkout from 2 to 4
ad95c08 Create dependabot.yml
40275e2 Merge pull request #167 from JuliaStats/andreasnoack-patch-1
fa5592a Merge pull request #170 from mbauman/patch-1
cf57562 Add more tests of mean and median of ranges
128dc11 Merge pull request #169 from stevengj/patch-1
48d7a02 docfix: abs2, not ^2
2ac5bec correct std docs: sqrt is elementwise
39f6332 Merge pull request #96 from josemanuel22/mean_may_return_incorrect_results
db3682b Merge branch 'master' into mean_may_return_incorrect_results
9e96507 Update src/Statistics.jl
58e5986 Test prereleases
6e76739 Implement one-argument cov2cor!
b8fee00 Stop testing on nightly
9addbb8 Merge pull request #162 from caleb-allen/patch-1
6e3d223 Merge pull request #164 from aplavin/patch-1
71ebe28 Merge pull request #166 from JuliaStats/dw/cov_cor_optimization
517afa6 add tests
aa0f549 Optimize `cov` and `cor` with identical arguments
cc11ea9 propagate NaN value in median
cf7040f Use non-mobile Wikipedia urls
547bf4d adding docu to mean! explain target should not alias with the source
296650a adding docu to mean! explain target should not alias with the source
```

Co-authored-by: Dilum Aluthge <[email protected]>
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