-
Notifications
You must be signed in to change notification settings - Fork 5.2k
USE_REGIONS for 32 bit initial commit #115486
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
Conversation
|
Tagging subscribers to this area: @dotnet/gc |
…or seg_mapping_table
71745f0 to
d1909db
Compare
d1909db to
669b632
Compare
669b632 to
fdaf37c
Compare
|
@dotnet/gc can you please take a look? This set of changes is required for regions on 32bit. With this PR on armel (with regions additionally enabled) there're no regressions on coreclr tests (checked default, release default/gcstress0xc/jitstress0x2/jitstress0x2, with crossgen of all tests/libs, etc). This was checked for WKS both with and without bgc (PR description is a bit outdated now). This PR also fixes some logic for all arches for disabled bgc and cc @dotnet/samsung |
|
Do you have any metrics / perf numbers where you expect regions would help in a 32bit scenarios? |
|
Draft Pull Request was automatically closed for 30 days of inactivity. Please let us know if you'd like to reopen it. |
@mangod9 sorry for late response. We are currently testing different scenarios, I'll share if there's any improvement. However, GC regions also provide additional functionality which is not present with segments, like heap hard limit and refresh of it. There's #101024, but it doesn't enable refresh of hard limit on 32bit with segments. Also, 32bit support in GC regions allows potential unification in future, when segments might be not needed at all and can potentially be removed. |
|
Regions are based on the premise that virtual address space reservation is free. It is not the case on 32-bit platforms. 32-bit address space is precious and fragmented. Regions on 32-bit platforms would require per-application configuration on how much to reserve upfront. It would be severe user experience regression on 32-bit platforms. |
I agree that for general-purpose scenarios this might be less convenient, that's why this PR doesn't enable regions by default on 32bit and only focuses on bug fixing and support. However, this can be useful for scenarios with custom builds of runtime, when users can configure per-app reserve size. |
PR includes initial fixes GC with USE_REGIONS enabled for arm32.
Tests failed cause enabling USE_REGIONS on arm32 on Checked, fixed by this PR:
Tests failed cause enabling USE_REGIONS on arm32 on Checked, not fixed yet by this PR:
cc @gbalykov