[herd] Align MTE async fault reporting with the architecture#1786
[herd] Align MTE async fault reporting with the architecture#1786diaolo01 wants to merge 1 commit into
Conversation
|
Following an offline message: The CI runs tests such as above in extra
I made a patch in #1789 please feel free to cherry-pick. |
|
I agree that using the "Fault" predicate in ways that are not checkable with litmus7 should not be the way. As such, the syntax
I am not sure existence of the second option excludes the first option. One way or another, the constraint to the syntax makes sense. I have three questions:
|
Indeed that the original proposal excluded async faults from
No. This can be observed by running
No. This change is only about how herd represents async faults in its final states. I don't think litmus supports async faults yet. |
|
One comment, otherwise, this looks good to me. |
| |L1: ; | ||
| | LDR W2,[X3] ; | ||
| exists ~fault (P1:L0,x) /\ ~fault(P1:L1,x) | ||
| exists ~fault (P1:L0,x) /\ ~fault(P1) |
There was a problem hiding this comment.
Shouldn't we cleanup both faults?
| exists ~fault (P1:L0,x) /\ ~fault(P1) | |
| exists ~fault(P1) |
| @@ -0,0 +1,12 @@ | |||
| AArch64 F005 | |||
There was a problem hiding this comment.
Sorry actually, I don't understand why we are adding this test.
| @@ -0,0 +1,12 @@ | |||
| AArch64 F006 | |||
This PR updates how herd reports asynchronous MTE tag-check faults so they match the architecture: async faults no longer contain a location or label, and only indicate that the thread saw a failing tag-check (mirroring TFSR_EL1 being set).
For the following test
The behaviour is as follows:
Before
Two async tag-checks on different locations appear as distinct faults:
After
Async tag-checks collapse into a single per thread marker:
This ensures async faults aren’t tied to a specific address or label.