-
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
Implement software write watch for GC heap feature for arm32. #113017
base: main
Are you sure you want to change the base?
Conversation
Tagging subscribers to this area: @mangod9 |
@dotnet/gc We don't have software write watch enabled on any other 32-bit platforms. Do you see any issues with enabling it for Arm32? |
yeah feels odd to only enable on arm32 but not x86. We also have the 32-bit heaphardlimit support which we are still evaluating. The concern with these is their associated validation costs. @viewizard, do you have any perf results which show that background GC is going to make a significant difference in your scenarios? |
We want to reduce GC pause time on arm32 on Tizen. Currently we do not have any plans for x86 work in this area. Besides, last time we've checked, runtime on linux x86 was not in working condition and crashed on simple tests.
In some scenarios on Tizen apps we got max pause time reduction from approximately 100 ms to 45 ms, and average pause time also reduces approximately on 20-30%. @viewizard ran coreclr tests with write watch on arm32 (default, gcstress 0xc, jitstress 0x2, jitstressregs 0x2), no issues. |
I fixed the basic linux-x86 build-and-run scenarios recently. I didn't run anything beside simple smoke tests but those work again. I can port the software write watch code there but since it's a community supported platform I don't think it would really move the needle. Not sure if there's any point in trying with win-x86. |
If we could get all the platforms to use software write watch, we could delete quite a bit of the legacy hardware write watch code, that is a win. |
there's very little code associated with "hardware write watch" since it's just calling a couple of OS APIs to get the pages written. |
This feature implementation allow enable background GC feature on arm32.
CC @dotnet/samsung