-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Add tests exposing issue #60035 #60047
Conversation
I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label. |
/azp run runtime-coreclr jitstress-isas-x86 |
Azure Pipelines successfully started running 1 pipeline(s). |
@davidwrighton Do you think we need an image per ISA to be able to test disabling individual ISAs? For example, Helper.Sse2.dll would only call |
2ada90a
to
6b41bac
Compare
/azp run runtime-coreclr jitstress-isas-x86 |
/azp run runtime-coreclr jitstress-isas-arm |
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
Azure Pipelines successfully started running 1 pipeline(s). |
I think it would be beneficial if we also had a simple test assembly that validates scenarios such as:
This should validate that the environment variables are working as expected and, at least as I understand it, should work correctly for anything that is an "opportunistic" ISA (that is, it wouldn't work for SSE/SSE2 under |
@tannergooding Do you want such test assembly to be crossgen-d before running? |
I'd think we'd want a version that validates things like However, I think we should generally be able to test that these switches (for non-baseline ISAs) work as intended under crossgen as well. At least as I remember everything working, there shouldn't be anything blocking this from working (but I may be forgetting some nuance of the crossgen setup here). |
Make sense, I will try to incorporate these tests here.
Basically, you want in addition to |
Right. These |
Hmm, it doesn't look that these are working as expected. If I disable SSE2 I have discrepancy between what a ReadyToRun image assumes and what
Similarly, for SSE4.1
It does work for optional ISAs though. Say, for AVX
cc @jkotas |
The behavior that you are seeing is what I would expect given how it is implemented currently. R2R code does not pay attention to ISA env variables, and so it always returns the actual configuration of the machine. I think we need to move the reading of the ISA env variables to VM to fix this discrepancy as I have said in #60035 (comment)
Nit: In crossgen terminology, these are called |
Got it, thanks for explanation! |
One more question for my education while we are discussing the current behavior. Should I expect that under
|
No. There should be no observable behavior changes in hardware intrinsic APIs from turning tiered compilation on/off. If you see observable behavior changes in hardware intrinsic APIs when turning tiered compilation on/off, it is a bug. |
It looks that in the |
6b41bac
to
0513bca
Compare
/azp run runtime-coreclr jitstress-isas-x86 |
/azp run runtime-coreclr jitstress-isas-arm |
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
Azure Pipelines successfully started running 1 pipeline(s). |
0513bca
to
a4dcb42
Compare
@tannergooding I updated the test generator and the tests - is this what you had in mind in #60047 (comment) ? |
@@ -0,0 +1,319 @@ | |||
# Licensed to the .NET Foundation under one or more agreements. |
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.
Can we avoid adding more Python to the repo? Can this be written in C# instead?
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.
Sure, I could've written the generator in C# - I just picked Python since it was faster for me to iterate on the changes.
Draft Pull Request was automatically closed for inactivity. Please let us know if you'd like to reopen it. |
I will work on re-writing in C# (as Jan requsted) and minimizing (as David requested) the tests later when I have bandwidth. |
@davidwrighton This is a prototype of the test as we discussed today.