Diogo Netto
Diogo Netto
This PR extends the refactoring from https://github.com/JuliaLang/julia/pull/45608 by parallelizing the GC mark-loop. Some benchmark results are here: https://hackmd.io/@Idnmfpb3SxK98-OsBtRD5A/HJn86Bl25 ## TODO - [x] Move work-stealing queue implementation to separate file. -...
This PR simplifies the GC mark-loop code. Some benchmark results are shown here: https://hackmd.io/XZDp98lTR3qyYgsWKCTvnQ. I believe these changes could bring some performance benefits as well (particularly if used with prefetching...
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...
Should fix https://github.com/JuliaLang/julia/issues/52757, https://github.com/JuliaLang/julia/issues/53026 and https://github.com/JuliaLang/julia/issues/53350. Removes some of the awkwardness from https://github.com/JuliaLang/julia/pull/53351 but does require waiting for all threads to join at the end of mark-loop.
[This](https://github.com/JuliaLang/julia/blob/8e5136fa2979885081cd502d2210633dff1d2a1a/src/gc.c#L3611) should probably be `not_freed_enough`, since that's the case we want to let the interval increase. CC: @gbaraldi
As mentioned in https://github.com/JuliaLang/julia/pull/53716, we've been noticing that `precompile` statements lists from one version of our codebase often don't apply cleanly in a slightly different version. That's because a lot...
Should fix https://github.com/JuliaLang/julia/issues/54275.
Consider the MWE provided by @tveldhui: ```Julia function foo() String(UInt8['a' for i in 1:10000000]) end function test() GC.gc(true) baseline = Base.gc_live_bytes() while true foo() GC.gc(true) print("gc_live_bytes = +$((Base.gc_live_bytes() - baseline)/1024^2)MiB\n")...
With the ongoing MMTk effort, we are aiming to make the GC more modular and allow users to specify at build time different GC implementations they want for Julia. This...
These extra information on the backtraces proved useful for us when filtering which servers failed due to a segmentation fault, for instance, and when diagnosing crashes in production more in...