-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Make linux-riscv nativeaot port robust #112736
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: Filip Navara <[email protected]>
…city guarantees of RhpCheckedXchg
…ount (to be reviewed)
@am11 I pushed changes addressing all the feedback save for #112736 (comment). Tested on device. |
2fd845a is being scheduled for building and testingGIT: |
RISC-V Release-CLR-VF2: 9461 / 9537 (99.20%)
Release-CLR-VF2.md, Release-CLR-VF2.xml, testclr_output.tar.gz Build information and commandsGIT: RISC-V Release-FX-QEMU: 627597 / 655412 (95.76%)
Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz Build information and commandsGIT: RISC-V Release-FX-VF2: 622743 / 658502 (94.57%)
Build information and commandsGIT: RISC-V Release-CLR-QEMU: 9461 / 9537 (99.20%)
Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz Build information and commandsGIT: |
Thank you! Tested after a clean build, haven't found any issue. 👍 |
RISC-V Release-CLR-VF2: 9461 / 9537 (99.20%)
Release-CLR-VF2.md, Release-CLR-VF2.xml, testclr_output.tar.gz Build information and commandsGIT: RISC-V Release-CLR-QEMU: 9461 / 9537 (99.20%)
Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz Build information and commandsGIT: RISC-V Release-FX-VF2: 459134 / 495169 (92.72%)
Build information and commandsGIT: RISC-V Release-FX-QEMU: 650948 / 679012 (95.87%)
Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz Build information and commandsGIT: |
...er.Compiler/Compiler/DependencyAnalysis/Target_RiscV64/RiscV64ReadyToRunGenericHelperNode.cs
Outdated
Show resolved
Hide resolved
Co-authored-by: Tomasz Sowiński <[email protected]>
RISC-V Release-CLR-VF2: 9461 / 9537 (99.20%)
Release-CLR-VF2.md, Release-CLR-VF2.xml, testclr_output.tar.gz Build information and commandsGIT: RISC-V Release-FX-VF2: 633426 / 666926 (94.98%)
Build information and commandsGIT: RISC-V Release-CLR-QEMU: 9461 / 9537 (99.20%)
Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz Build information and commandsGIT: RISC-V Release-FX-QEMU: 668311 / 700335 (95.43%)
Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz Build information and commandsGIT: |
@jkotas as you probably already know this but testing these changes is non-trivial on community platforms compared to official ones. It would be nice if bootstrapping work isn't blocked on minor details so we can do fast iterations to stabilize things. CoreCLR runtime is still getting riscv64 fixes after two years or so, I doubt we can fit and finish AOT in one go especially with broken infra. For ref, it is now passing more tests than LA64. |
I would not necessarily call it a minor detail. Debugging memory order semantic errors postmortem is close to impossible because the observed effects are gone by the time you get into debugger. I for one appreciate feedback on this and if other reviewers give it more scrutiny. I understand that you want to get this PR in quickly and so do I. I'm willing to spend time on addressing it now that I have some details still fresh in memory... (I have the fences fixed locally, just need to run tests on HW.) |
As I have said, my preference is to make the code just right where possible so that we do not have to go back to fix it again. If it is too hard (e.g. requires large scale refactoring), I would like to see wrong or sub-optimal code wrapped in TODOs and links to issues to ensure that these minor but important details do not fall through the cracks. I am applying the same bar for both Microsoft and community contributions that go into main. For example, #112705 (comment) |
RISC-V Release-CLR-VF2: 9461 / 9537 (99.20%)
Release-CLR-VF2.md, Release-CLR-VF2.xml, testclr_output.tar.gz Build information and commandsGIT: RISC-V Release-CLR-QEMU: 9461 / 9537 (99.20%)
Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz Build information and commandsGIT: RISC-V Release-FX-QEMU: 625826 / 663845 (94.27%)
Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz Build information and commandsGIT: RISC-V Release-FX-VF2: 623413 / 649277 (96.02%)
Build information and commandsGIT: |
… and equivalent code in CoreCLR in ExchangeObject/CompareExchangeObject
RISC-V Release-CLR-VF2: 9461 / 9537 (99.20%)
Release-CLR-VF2.md, Release-CLR-VF2.xml, testclr_output.tar.gz Build information and commandsGIT: RISC-V Release-FX-VF2: 422942 / 452006 (93.57%)
Build information and commandsGIT: RISC-V Release-CLR-QEMU: 9461 / 9537 (99.20%)
Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz Build information and commandsGIT: RISC-V Release-FX-QEMU: 627508 / 655359 (95.75%)
Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz Build information and commandsGIT: |
Added comments seems self-explanatory. All outstanding feedback is addressed. Let me know if there is something else. |
Huge thanks to @filipnavara, all smoke tests are passing (except DwarfDump which currently doesn't account for per-architecture stats).
Contributes to #106223. We will run AOT libs tests next.