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

Reland "gc: avoid cpu stalls when starting" #45794

Merged
merged 3 commits into from
Dec 14, 2023
Merged

Conversation

vtjnash
Copy link
Member

@vtjnash vtjnash commented Jun 23, 2022

This reverts commit 4801b6c and adds
the safepoints needed to catch the unsafe->safe transition also.

@vtjnash vtjnash added the DO NOT MERGE Do not merge this PR! label Jun 23, 2022
@vtjnash vtjnash marked this pull request as draft June 23, 2022 15:29
@vtjnash vtjnash removed the DO NOT MERGE Do not merge this PR! label Jun 23, 2022
@vtjnash vtjnash force-pushed the jn/rr-cpu-unstall-2gc branch from 742f4a5 to 42caea2 Compare June 23, 2022 18:07
@vtjnash vtjnash force-pushed the jn/rr-cpu-unstall-2gc branch from 42caea2 to a1ef2f3 Compare December 12, 2023 20:09
@vtjnash
Copy link
Member Author

vtjnash commented Dec 12, 2023

Would be good to get someone to look these over. Though many more of these problems have been introduced into gc.c since I wrote this PR, so those need to be fixed now too (most of those look like they simply should have been uv_barriers, so that at least is much simpler).

@vtjnash vtjnash added the GC Garbage collector label Dec 12, 2023
@vtjnash vtjnash force-pushed the jn/rr-cpu-unstall-2gc branch from a1ef2f3 to 0f20c06 Compare December 13, 2023 16:29
@vtjnash vtjnash added multithreading Base.Threads and related functionality don't squash Don't squash merge labels Dec 13, 2023
This reverts commit 4801b6c and adds
the safepoints needed to catch the unsafe->safe transition also and the
locks needed for the condition broadcast message to be seen.
Could be observed by thread 0 during certain phases, since if the dying
thread was not running, it was not supposed to call jl_wakeup_thread
(which will not increment nrunning until after the wakeup).
@vtjnash vtjnash force-pushed the jn/rr-cpu-unstall-2gc branch from 0f20c06 to ab1dda2 Compare December 13, 2023 21:25
@vtjnash vtjnash added the merge me PR is reviewed. Merge when all tests are passing label Dec 13, 2023
@vtjnash vtjnash marked this pull request as ready for review December 13, 2023 21:25
@vtjnash vtjnash merged commit f345755 into master Dec 14, 2023
5 of 8 checks passed
@vtjnash vtjnash deleted the jn/rr-cpu-unstall-2gc branch December 14, 2023 16:54
@DilumAluthge DilumAluthge removed the merge me PR is reviewed. Merge when all tests are passing label Dec 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
don't squash Don't squash merge GC Garbage collector multithreading Base.Threads and related functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants