Skip to content
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

Atomics ACT #25

Open
13 tasks
jjscheel opened this issue Mar 17, 2023 · 49 comments
Open
13 tasks

Atomics ACT #25

jjscheel opened this issue Mar 17, 2023 · 49 comments
Assignees

Comments

@jjscheel
Copy link
Contributor

jjscheel commented Mar 17, 2023

Technical Group

Architecture Test SIG

ratification-pkg

Atomics

Technical Liaison

Allen Baum

Task Category

Arch Tests

Task Sub Category

  • gcc
  • binutils
  • gdb
  • intrinsics
  • Java
  • KVM
  • ld
  • llvm
  • Linux kernel
  • QEMU
  • Spike

Ratification Target

3Q2023

Statement of Work (SOW)

SOW: link

SOW Signoffs:

  • Task group liaison sign-off date:
  • Development partner sign-off date:
  • ACT SIG sign-off date (if ACT work):

Waiver

  • Freeze
  • Ratification

Pull Request Details

PR #1 of 2 - Merged
PR #2 of 2 - Merged
PR #3 of 2 - In review

@UmerShahidengr
Copy link

Ahad Ali from 10xEngineers will be working on this issue.

@jjscheel
Copy link
Contributor Author

jjscheel commented Apr 6, 2023

@UmerShahidengr, good to know.

Would you kindly make sure that Ahad does the following?

  • Gets a Portal Id
  • Joins the (DevPartners Group)[https://lists.riscv.org/g/dev-partners/topics]
  • Puts his GitHub id in his profile per the (discussion)[https://lists.riscv.org/g/dev-partners/topic/risc_v_profile_update/97658653]

Then, I will add him to the project and issue.

@jjscheel
Copy link
Contributor Author

Status from Umer:

Atomics ACTs: Ahad Ali from 10xE will be working on this project. He is also working on testplan which will be shared before the next meeting.

@jjscheel
Copy link
Contributor Author

jjscheel commented Apr 11, 2023

Ahad Ali, you should have an invitation to the project, please accept so that I can assign this issue to you.

@ahadali-10x
Copy link

@jjscheel, I haven't received an invitation to the project.

@jjscheel
Copy link
Contributor Author

Please try looking on GitHub, either:
https://github.com/riscv-admin/ or
https://github.com/orgs/riscv-admin/teams/riscv-devpartner-partners

You should see it on the top of the page. Also, you should have received an email notification per your GitHub settings.

@ahadali-10x
Copy link

I have accepted the invitation.

@jjscheel
Copy link
Contributor Author

I have assigned you to this issue! THANKS!!!

@jjscheel jjscheel assigned ahadali-10x and unassigned jjscheel Apr 12, 2023
@UmerShahidengr
Copy link

UmerShahidengr commented Apr 25, 2023

Update: Apr 25th, 2023 => The planning phase of this project has been completed, this is the test plan for the viewers to review: Test plan Atomic Ext
Goal for next week: Develop the skeleton code (Basic R/W access) according to the ACT template, and run it on Spike via riscof.

@UmerShahidengr
Copy link

Update May 7th, 2023 ⇾ Progress has been slow so far as @ahadali-10x is learning the riscof tool, structure of existing ACTs. The initial tests will be developed till next week.

PS: Our completion date for this project is still 2023Q2, so we will accelerate this task, our 1st PR will be submitted before the next week, hopefully.

@jjscheel
Copy link
Contributor Author

jjscheel commented May 8, 2023

Thanks for update. Moving next touch point to next meeting and removing from this week's Agenda.

@UmerShahidengr
Copy link

Update May 23rd, 2023 => The initial set of tests are ready, and available here. PR will be submitted in 2-3 days after some fine tuning.

@jjscheel
Copy link
Contributor Author

jjscheel commented May 23, 2023

Excellent news, @UmerShahidengr! Marking Development Complete date. Will update state when first PR submitted. Please let me know when you submit the first one. Thanks!

@ahadali-10x
Copy link

The first patch of Atomic ACTs is submitted via PR.

@jjscheel
Copy link
Contributor Author

Thanks, @ahadali-10x! I've moved the status to "Testing" and recorded the PR date. Is there only 1 PR anticipated?

@ahadali-10x
Copy link

No, more PRs are expected. These tests are for RV32. Tests for RV64 are remaining.

@jjscheel
Copy link
Contributor Author

Ok. Thanks, @ahadali-10x!

@UmerShahidengr
Copy link

Update ⇾ June 12th, 2023:
Next major commit (RV64 tests) is expected this week

@jjscheel
Copy link
Contributor Author

Thanks, Umer. Removed from this week's agenda. Will get update in next meeting.

@UmerShahidengr
Copy link

Update ⇾ July 11th, 2023
Coverpoints and coverage is almost finished. This project will be completed after submitting the coverage reports and coverpoints this week

@UmerShahidengr
Copy link

UmerShahidengr commented Sep 26, 2023

Update ⇾ September 26th, 2023
PR has been approved, so work is complete.

@jjscheel
Copy link
Contributor Author

Nice work, @UmerShahidengr and @ahadali-10x!

@allenjbaum, please confirm your sign-off of this item so that we can consider done.

@allenjbaum
Copy link

allenjbaum commented Sep 27, 2023 via email

@jjscheel
Copy link
Contributor Author

Thanks, @allenjbaum!

Yes, I opened a Newsletter item: #19.

@allenjbaum
Copy link

Well, what is there is good, but it doesn't meet the SOW.
1: No tests for unaligned atomics (which are supposed to trap, & therefore set RVTEST_MTRAP_ROUTINE)
There are actually two different trap causes: address misalign and access fault. Access fault has higher priority, and this can be tested by trying to store at an address that doesn't allow reads or writes (either a malformed address, or PMP or PTE permissions). If we're not counting on S or U modes being implemented, then we can only test this by using a physical address whose upper bits are non-zero. If we don't know the size of the PA, just set the PA to -1 The test should account for the value being intialized by explicitly writing each unaligned half, and adjusting the signature address before to point to the unaligned address and after to be the aligned value.

  1. There is also no coverage of LR/SC. While we can't test what happens with an interfering access, we can test what happens in all the other cases mentioned in the spec: too many instructions between LR and SC, load/store between LR and SC (both non-interfering and interfering, where interfering is accessing any byte in the implementation-defined reservation-set size, including when an unaligned address overlaps), LRs or SCs to different addresses between otherwise well formed LR/SC pairs, trapping between LR and SC (e.g. ecall or bkpt) etc.

@jjscheel
Copy link
Contributor Author

@allenjbaum, thanks for raising this. I've set this back to Signoff state and we likely will adjust more in the future.

@UmerShahidengr, I believe you agreed to take a look at this in the Arch Test SIG call today. I'll assign to you for now. Feel free to re-assign as needed.

@UmerShahidengr
Copy link

Thank you @jjscheel , this will be rectified before our next meeting.

@jjscheel
Copy link
Contributor Author

No worries, @UmerShahidengr. THANKS!

@UmerShahidengr
Copy link

Update ⇾ November 28th, 2023
Here is the test plan for LR/SC tests. We will be following this test plan and will deliver the tests before the next meeting.

@UmerShahidengr
Copy link

Update ⇾ December 12th, 2023
The ACTs of LR/SC have been developed by @ahadali-10x and are in internal review stage. Tests will be available in the next week, but coverpoint definitions will take some time.

@allenjbaum
Copy link

I've added some other test coverpoints to the test plan. (in column F)

@UmerShahidengr
Copy link

Update ⇾ January 30th, 2024
Basic LR/SC tests are ready. coverpoint definitions are left. Expecting to deliver it soon.

@UmerShahidengr
Copy link

UmerShahidengr commented Jan 30, 2024

Here is the testplan: Testplan For Atomic ACTs

@UmerShahidengr
Copy link

Update ⇾ March 5th, 2024
LR/SC tests have been delivered, and are available in this PR. This SoW will be completed once this PR will be merged.

@jjscheel
Copy link
Contributor Author

jjscheel commented Mar 5, 2024

Thanks, @UmerShahidengr. I've updated the description.

@UmerShahidengr
Copy link

Update ⇾ April 2nd, 2024
LR/SC PR is yet to be merged. @allenjbaum has been notified to review it.

@jjscheel
Copy link
Contributor Author

jjscheel commented Apr 3, 2024

Thanks, Umer.

@UmerShahidengr
Copy link

Update ⇾ April 18th, 2024
@allenjbaum has reviewed LR/SC tests, these tests will be updated before the nxt meeting.

@UmerShahidengr
Copy link

Update June 11th, 2024:
LR/SC tests were shelved due to the lack of resources in this quarter, we will resume this one in the next quarter

@jjscheel
Copy link
Contributor Author

Thanks for update, @UmerShahidengr. Let's plan for update in July.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Blocked
Development

No branches or pull requests

5 participants