Getting vxsort working on Linux amd64#98712
Merged
cshung merged 1 commit intodotnet:mainfrom Apr 3, 2024
Merged
Conversation
|
Tagging subscribers to this area: @dotnet/gc Issue Detailsnull
|
6b2ebc9 to
7dd898f
Compare
2 tasks
1abc327 to
ce18101
Compare
Member
|
The increase in crossgen2 binary size is 133 KB on linux-x64 and 115 KB on osx-x64 (without the last commit). If the performance gain is worth the additional size, can revert 786e0aa and adjust the size test: 1750 -> 1900 |
Member
|
why is this affecting crossgen2 binary sizes? Is this changing any JIT behavior? |
Contributor
Author
This change does not change any JIT behavior, it is just that the code for vxsort has a non-trivial size. |
src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets
Show resolved
Hide resolved
7d93e88 to
55d788d
Compare
This was referenced Mar 19, 2024
Maoni0
reviewed
Mar 19, 2024
Maoni0
reviewed
Mar 19, 2024
Maoni0
reviewed
Mar 19, 2024
b555daf to
fdcf757
Compare
jkotas
reviewed
Mar 21, 2024
src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets
Show resolved
Hide resolved
5d0404a to
19e8e53
Compare
am11
reviewed
Mar 28, 2024
Member
|
One more am11@0dd4664 (I was testing on arm64 machine earlier 😅). |
am11
reviewed
Mar 29, 2024
This was referenced Mar 29, 2024
Closed
Closed
6b5b725 to
2046a84
Compare
3 tasks
Co-authored-by: Jan Vorlicek <janvorli@microsoft.com> Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
2046a84 to
68cf2dd
Compare
shushanhf
added a commit
to shushanhf/runtime
that referenced
this pull request
Apr 8, 2024
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<=13. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
shushanhf
added a commit
to shushanhf/runtime
that referenced
this pull request
Apr 8, 2024
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
shushanhf
added a commit
to shushanhf/runtime
that referenced
this pull request
Apr 8, 2024
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
shushanhf
added a commit
to shushanhf/runtime
that referenced
this pull request
Apr 8, 2024
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
shushanhf
added a commit
to shushanhf/runtime
that referenced
this pull request
Apr 9, 2024
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
shushanhf
added a commit
to shushanhf/runtime
that referenced
this pull request
Apr 9, 2024
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
shushanhf
added a commit
to shushanhf/runtime
that referenced
this pull request
Apr 9, 2024
…code` when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
matouskozak
pushed a commit
to matouskozak/runtime
that referenced
this pull request
Apr 30, 2024
Co-authored-by: Jan Vorlicek <janvorli@microsoft.com> Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
matouskozak
pushed a commit
to matouskozak/runtime
that referenced
this pull request
Apr 30, 2024
…code` (dotnet#100742) when building on debug mode on loongarch64/arm64/amd64-linux by clang<14. Also delete `#ifndef FALLTHROUGH` block as dotnet#98336 added after dotnet#98712.
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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
This change make vxsort available for other x64 platforms other than Windows. Overall, the algorithm improved the pause time for ephemeral GCs by a few percents. Attached below are the numbers on Linux running GCPerfSim.
This change will increase binary size by a about 130k because VxSort is a lot of code. For NativeAOT, I chose to follow the Windows policy to enable it by default and provided the same opt-out.
It is also tested under Rosetta emulation to show that it will work even on machines without AVX instructions. Of course, VxSort will not be available there and we will use the introsort fallback.
Special thanks to @janvorli for helping with the compilation errors when I was stuck trying to fix them.
Summary