-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Open
Labels
NeedsFixThe path to resolution is known, but the work has not been done.The path to resolution is known, but the work has not been done.compiler/runtimeIssues related to the Go compiler and/or runtime.Issues related to the Go compiler and/or runtime.
Milestone
Description
Go 1.14 introduces asynchronous preemption so that tight loops can be preempted (#10958). However, there are still several loose ends to tie up. This is a general bug to keep track of remaining work:
- Support on all possible platforms (js/wasm is not currently possible)
- Redo unsafe-point representation so we can eliminate register maps (CL 230544)
- Remove register maps and extra stack maps (after redesigning debug call injection) (CL 230544)
- Possibly incorporate @cherrymui's sequence restarting (CL 208126)
- Attach unsafety/restartability to Progs and generate the stream post-assembly like spadj (comment)
- Make large pointer-free memmoves/memclrs preemptible (runtime: long pauses STW (sweep termination) on massive block allocation #31222)
- Make large pointer-full memmoves/memclrs preemptible (this is a little harder)
- Make large allocations preemptible (closely related to the above two, partly done)
- Fix various annoying spins in the scheduler
- Make more of the runtime preemptible
cristaloleg, zigo101, tamasd, reusee, komuw and 25 more
Metadata
Metadata
Assignees
Labels
NeedsFixThe path to resolution is known, but the work has not been done.The path to resolution is known, but the work has not been done.compiler/runtimeIssues related to the Go compiler and/or runtime.Issues related to the Go compiler and/or runtime.
Type
Projects
Status
Triage Backlog