-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Write barrier without any RWX pages #114982
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
Merged
davidwrighton
merged 37 commits into
dotnet:main
from
davidwrighton:WriteBarrier_WithoutCodegen
May 15, 2025
Merged
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit
Hold shift + click to select a range
bfd57cd
Builds with write barrier moved
davidwrighton 02b9ea6
More adjustment
davidwrighton 273b640
Merge branch 'main' of https://github.com/dotnet/runtime into WriteBa…
davidwrighton 17ad508
In theory all mucked up to make this work on Windows Amd64... Or at l…
davidwrighton 4669265
Fix config settings for write barrier
davidwrighton a24a67e
Get the Arm64 build to work on Windows
davidwrighton a858993
Fix arm64 build
davidwrighton 1c4c79a
Fix arm build
davidwrighton 999b466
Fix RiscV build
davidwrighton 547fb96
Fix Loongarch64 build
davidwrighton 9fd2921
Fix Windows X86 build
davidwrighton 9c2e247
Attempt to fix Windows Arm64 and Windows X86 issues
davidwrighton 4601ff8
Attempt to fix Linux Arm build
davidwrighton ff8a695
Fix Linux Arm32
davidwrighton a882fbf
Alternative approach to fixing the EH issue that may fix OSX as well.…
davidwrighton f5a07a7
Revert "Alternative approach to fixing the EH issue that may fix OSX …
davidwrighton 45a866b
Fix the Linux Arm32 Rhp write barrier to support FEATURE_USE_SOFTWARE…
davidwrighton 516656e
Remove ALTERNATE_ENTRY AVLocations
davidwrighton 2b791c6
Reapply "Alternative approach to fixing the EH issue that may fix OSX…
davidwrighton ecc06a7
Use the different style of lookup only on apple platforms on CoreCLR
davidwrighton e8c9a34
Fix build breaks
davidwrighton e992b86
Go back to using AVLocation alternate entries (The stae of Fix th Lin…
davidwrighton db5d24f
Attempt to fix arm32 build issue
davidwrighton f3f9320
Attempt to fix NullRefernce problem by moving ALTERNATE_ENTRY to star…
davidwrighton c35cbbd
Fix Windows X86 build
davidwrighton 0fa2885
Linux X86 builds, and probably works
davidwrighton 89422b6
Fix arm build
davidwrighton fd2cc83
Attempt to workaround build failures on apple platforms
davidwrighton 4dd7420
Sigh...
davidwrighton 5ab9e76
Fix more build breaks
davidwrighton 9467e25
Put the write watch table update in the right spot
davidwrighton 4e1ee53
Set UseGCWriteBarrierCopy to its production value
davidwrighton 3383a68
Merge branch 'main' of github.com:dotnet/runtime into WriteBarrier_Wi…
davidwrighton 6ca2479
Fix Windows X86 issue where the we failed to stack walk out of a writ…
davidwrighton 435c220
Code review feedback
davidwrighton 2950b1f
Try the cfi_startproc/cfi_endproc wrappers for ALTERNATE_ENTRY to see…
davidwrighton 247ae5f
Merge branch 'main' of https://github.com/dotnet/runtime into WriteBa…
davidwrighton File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,5 @@ | ||
| // Licensed to the .NET Foundation under one or more agreements. | ||
| // The .NET Foundation licenses this file to you under the MIT license. | ||
|
|
||
| // TODO: Implement | ||
| #include "AsmMacros_Shared.h" | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWIW this would not work anyway... we compile all code on Apple platforms as
.subsections_via_symbolsand the Apple linker is free to reorder the functions (or discard unused ones if told to). Compiling withoutsubsections_via_symbolsis not an option due to various bugs in different linker versions. The only other option to keep the desired order is to mark the successive symbols as.alt_entry, which also happens to run into linker bugs if not done extremely carefully...