-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Renable running Arm64 test cases in CI #83948
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsThe original change prohibited running Arm tests from non-Arm platform, however, we build AnyOS/AnyConfiguration tests and we don't know what the targeted CI leg is for. For now, just remove such restriction and see if it picks up Arm test cases. After that, probably, add a property (or look for a property, if there is one available) that can be used to exclude the Arm test cases from getting included in non-arm platforms. Fixes #83947
|
@dotnet/jit-contrib |
/azp run runtime-coreclr jitstressregs |
/azp run runtime-coreclr jitstress2-jitstressregs |
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
Azure Pipelines successfully started running 1 pipeline(s). |
This likely needs to include the logic to continue filtering these on irrelevant platforms. The filtering was done due to the timeouts that otherwise get hit, particularly in stress jobs |
Do you know the source of timeouts? The tests already have a runtime/eng/pipelines/runtime.yml Line 1028 in 9b38f2a
|
There are a lot of tests. Also most of them explicitly test that the APIs throw The csproj check was meant to save on CI time to ensure that we weren't building as much and that we weren't running as much, particularly given the overhead that some stress modes add to every bit of managed code that executes.
Hmmm. This makes it tricky to "do the right thing". On one hand we'll end up with hurting local build times and testing throughput and on the other CI won't be testing what we actually want/need for Pri0 The simplest thing for today would likely be to remove or comment out all the conditional exclusion logic at the build level and to run the stress tests in this PR to try to catch any timeouts caused. If we don't remove all the conditional logic, we'll still be building less than we should in some cases and not covering the right test scenarios. That at least ensures CI is correct. It's not going to help with turnaround time for the average job which doesn't touch these, however. We could move them out to their own CI leg and only trigger them on the relevant platform, but that's "more work" overall and we can track it in a separate issue. |
Yes, I will remove the
I did trigger jitstressregs and a jitstress pipeline. I will trigger gcstress too.
|
/azp run runtime-coreclr gcstress0x3-gcstress0xc |
/azp run runtime-coreclr jitstress |
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
Azure Pipelines successfully started running 1 pipeline(s). |
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.
LGTM, thanks Kunal! Just to clarify test priority checks that the build script refers to at line 8 and 10 should still be legal, we aren't trying to build Pri0 and Pri1 tests at the same time (there's actually no way to do it now considering they're used in different pipelines); other than that you're absolutely right that the architecture-specific checks shouldn't be put in the primary csproj
scripts exactly as you described.
What is a good way to accomplish this if we want to not skip building certain |
As I described in a comment on the issue thread the current POR is basically to use the |
It seems like with this change we'll run a lot more tests in the CI (some, of course, we should be running and currently aren't). Should Also, with this change, the comments:
are obsolete and can be removed. Also,
is also obsolete (all our Helix xarch machines support AVX-512). |
Moved this to the related issue as I realized it'd be better to have the discussion there: #83980 (comment)
@trylek, the consideration here is that we have a lot of hardware intrinsic tests. All tests "can" run on any machine. However, the test pattern on mismatched hardware is validation that a For So, for Inversely for Given this, is there a setup that would allow this to be achieved? |
We will explore the ideas in a separate PR. I will merge this one to unblock the Arm64 testing. |
Triggered superpmi collection to capture the Arm64 test cases. |
The original change prohibited running Arm tests from non-Arm platform, however, we build AnyOS/AnyConfiguration tests and we don't know what the targeted CI leg is for. For now, just remove such restriction and see if it picks up Arm test cases. After that, probably, add a property (or look for a property, if there is one available) that can be used to exclude the Arm test cases from getting included in non-arm platforms.
Fixes #83947