Skip to content

fix(arm): Propagate load-exclusive post-view through STXR forwarding - #175

Open
febyeji wants to merge 1 commit into
mainfrom
fix/arm-exclusive-forwarding
Open

fix(arm): Propagate load-exclusive post-view through STXR forwarding#175
febyeji wants to merge 1 commit into
mainfrom
fix/arm-exclusive-forwarding

Conversation

@febyeji

@febyeji febyeji commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

This fix follows the original Promising-ARM model’s treatment of exclusive state: its Exbank records both the load timestamp and the resulting view (ts and view), and an exclusive read saves view_post there.

However, the current ArchSem code keeps only the LDXR timestamp in the exclusive buffer. As a result, later reads that forward from the successful STXR may miss ordering information that came from the paired LDXR.

@febyeji
febyeji marked this pull request as ready for review July 1, 2026 14:15
@febyeji
febyeji force-pushed the fix/arm-exclusive-forwarding branch from 7f593e8 to e0713aa Compare July 1, 2026 18:04
@febyeji
febyeji marked this pull request as draft July 1, 2026 19:56
@febyeji
febyeji marked this pull request as ready for review July 2, 2026 15:41
@febyeji
febyeji force-pushed the fix/arm-exclusive-forwarding branch 5 times, most recently from edd6a5d to a23e2e0 Compare July 6, 2026 11:02
@febyeji
febyeji force-pushed the fix/arm-exclusive-forwarding branch 2 times, most recently from 39ebfae to ca35228 Compare July 17, 2026 21:28

@tperami tperami left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit message must mention that this is a weakening from original promising model and Armed cats paper to current Arm model

Comment thread ArchSemArm/UMPromising.v
Module XclItem.
Record t :=
make {
time : nat;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to say this is the data of the load exclusive (time is the external read time, and view is the vpost of the load exclusive

Comment thread ArchSemArm/UMPromising.v Outdated
Comment on lines +223 to +224
(* The latest load-exclusive, if its matching store-exclusive has not
run yet. *)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
(* The latest load-exclusive, if its matching store-exclusive has not
run yet. *)
(* The latest unmatched load-exclusive. *)

Comment thread ArchSemArm/UMPromising.v Outdated
time : nat;
view : view;
xcl : bool
xcl_view : option nat

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
xcl_view : option nat
xcl_view : option nat (** Implement the new [[R];rmw;rfi;[A|Q]] rule in [aob]*)

Carry the paired load-exclusive post-view separately from the forwarded write
view, and join it back only for acquire reads from successful store-exclusive
forwarding.

This implementation is a weakening from the original Promising model and the
Armed Cats paper to the current Arm model.
@febyeji
febyeji force-pushed the fix/arm-exclusive-forwarding branch from ca35228 to 77bc071 Compare July 23, 2026 04:13
@febyeji
febyeji requested a review from tperami July 23, 2026 04:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants