Skip to content

Implement mixed-size access in UM promising model#98

Merged
tperami merged 1 commit into
mainfrom
feature/mixed-size-um
May 12, 2026
Merged

Implement mixed-size access in UM promising model#98
tperami merged 1 commit into
mainfrom
feature/mixed-size-um

Conversation

@febyeji
Copy link
Copy Markdown
Collaborator

@febyeji febyeji commented Mar 30, 2026

Summary

  • Add mixed-size memory access support to the UM promising model
  • Msg.t is now a dependent record with val : bv (8 * size) so all messages live in one list
  • Exclusive monitor stores LDXR's addr/size; mismatch → non-deterministic per ARM ARM B2.12
  • VMPromising.v unchanged (keeps fixed 8-byte access)

@febyeji febyeji force-pushed the feature/mixed-size-um branch 3 times, most recently from 2ecafff to 34623fa Compare April 1, 2026 08:00
@febyeji febyeji marked this pull request as ready for review April 1, 2026 08:03
Copy link
Copy Markdown
Collaborator

@tperami tperami left a comment

Choose a reason for hiding this comment

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

This is good work! There are still some kinks to iron out both in the fiddly part of the mixed-semantics and in general organization, but I think this is close to being mergeable

Comment thread ArchSem/GenPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread cli/tests/arm/um-mixed/MPmixed+dmbs-unobservable.archsem.toml Outdated
Comment thread cli/tests/arm/dune
@febyeji febyeji force-pushed the feature/mixed-size-um branch from 34623fa to 19bd9df Compare April 9, 2026 07:42
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v
Comment thread ArchSemArm/UMPromising.v Outdated
@febyeji febyeji force-pushed the feature/mixed-size-um branch 2 times, most recently from c04210d to 9bdc500 Compare April 14, 2026 13:26
@febyeji febyeji force-pushed the feature/mixed-size-um branch 2 times, most recently from 62311f0 to 91ed896 Compare April 29, 2026 04:24
Copy link
Copy Markdown
Collaborator

@tperami tperami left a comment

Choose a reason for hiding this comment

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

Some nit-picks, and the main semantic of read_mem is still wrong (but it's really tricky)

Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
@febyeji febyeji force-pushed the feature/mixed-size-um branch from 91ed896 to e292c62 Compare May 7, 2026 09:27
Copy link
Copy Markdown
Collaborator

@tperami tperami left a comment

Choose a reason for hiding this comment

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

The main logic for mix-sized accesses is correct,

All those comments are more about cleanup/simplification/comment improvements except for a minor one in the exclusives semantics

Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
Comment thread ArchSemArm/UMPromising.v Outdated
- Msg.t: dependent record with `val : bv (8 * size)` so all messages share one list
- Multi-byte reads: single observation point per load
- Exclusive monitor: stores LDXR addr/size, mismatch is non-deterministic (ARM ARM B2.12)
- CBitvector: vm_compute-friendly bv_eq_dec/countable/finite replacing stdpp's opaque versions
- GenPromising: mEvent_eqb / remove_dups_by to bypass eq_dec blocking under vm_compute
@febyeji febyeji force-pushed the feature/mixed-size-um branch from e292c62 to 20d4b47 Compare May 12, 2026 09:03
Copy link
Copy Markdown
Collaborator

@tperami tperami left a comment

Choose a reason for hiding this comment

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

LGTM

@tperami tperami merged commit 0a7de36 into main May 12, 2026
1 check passed
@febyeji febyeji deleted the feature/mixed-size-um branch May 12, 2026 12:08
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