Closed
Description
NativeAOT is missing implementation of full GC suspension logic. This manifest as hang when one thread of the program is running tight loop without any GC probes and another thread triggers GC.
More context:
- Implement PalHijack for Unix in PAL corert#642
- GC thread suspension corert#7807
- sched_yield infinite loop corert#7816
Workitems:
- return address hijacking Windows x64
supported already - return address hijacking Windows arm64
[NativeAOT] Enabling return address hijacking on ARM64 Windows #70740 - redirection at GC safe points Windows x64
[NativeAOT] Asynchronous thread suspension at GC safe points on Windows #70316 - redirection at GC safe points Windows arm64
[NativeAOT] Enabling asynchronous thread suspension at GC safe points on ARM64 Windows #70769 - return address hijacking Unix x64
[NativeAOT] thread suspension on Unix #71187 - return address hijacking Unix arm64
[NativeAOT] Enable async runtime suspension and return hijacking on unix-arm64 #73216 - redirection at GC safe points Unix x64
[NativeAOT] thread suspension on Unix #71187 - redirection at GC safe points Unix arm64
[NativeAOT] Enable async runtime suspension and return hijacking on unix-arm64 #73216 - suspension loop optimizations on par with CoreClr
[NativeAOT] Follow up changes for the suspension loop routine. #73741