-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Use of CoreCLR GC in conservative stack scanning mode #61919
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
It looks like |
The conservative stack scanning mode has functionality and performance issues.
I see conservative stack scanning mode as community supported. We are fine with taking fixes for it, assuming these fixes would not conflict with the precise stack scanning mode. We would not be able to make it officially Microsoft supported or recommended to use in CoreCLR runtime. Microsoft supported means that the feature has to be handle workloads like https://devblogs.microsoft.com/dotnet/azure-active-directorys-gateway-is-on-net-6-0/ with confidence. The conservative stack scanning is too brittle to do that. |
Tagging subscribers to this area: @dotnet/gc Issue DetailsIn the (currently internal) Unity prototypes using CoreCLR as an embedded JIT runtime, we have been using the CoreCLR GC in its conservative stack scanning mode. We understand this mode is not supported for production use. Is this something Microsoft would consider supporting? It looks like existing Unity native code does enough access to managed objects that we will need to run in this mode to use the CoreCLR GC. We can work on limiting this kind of access in the Unity code, but that is a task that will take much longer than our planned CoreCLR migration. So we would like to use conservative stack scanning now.
|
What level does community support have with respect to testing? We're fine to maintain this where necessary, but will existing CI run with this mode enabled? Or will we need to handle that? |
We are fine with having cheap basic coverage in the CI runs for the community supported targets or features. For example, it would be fine to add a test under src\tests that runs with Adding the full CI coverage for the It would be up to you to ensure the quality bar you need for the |
2 cents: our libs tests already aware of "conservative" mode so around a hundred of tests are disabled for it via because of Mono obviously. |
An update from the Unity side: We've decided not to pursue this option. Instead Unity plans to adjust our code so that it will work with the CoreCLR GC in its normal operation. |
In the (currently internal) Unity prototypes using CoreCLR as an embedded JIT runtime, we have been using the CoreCLR GC in its conservative stack scanning mode. We understand this mode is not supported for production use. Is this something Microsoft would consider supporting?
It looks like existing Unity native code does enough access to managed objects that we will need to run in this mode to use the CoreCLR GC. We can work on limiting this kind of access in the Unity code, but that is a task that will take much longer than our planned CoreCLR migration. So we would like to use conservative stack scanning now.
The text was updated successfully, but these errors were encountered: