snu-sf/promising-arm

`rmw` relates load/store exclusives on different locations?

jeehoonkang opened this issue · 6 comments

Currently it doesn't. But it's unclear whether the spec allows it: #5 (comment)

The manual says "The address used in a STREX instruction must be the same as the address in the most recently executed LDREX instruction. The result of executing a STREX instruction to a different address is unpredictable." (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489e/Cihbghef.html) So basically it's undefined behavior..

cp526 commented

It's very unclear what CONSTRAINED UNPREDICTABLE and UNKNOWN mean.. and I don't think we have to define it precisely in this paper. Also, I think introducing special operational model state will complicate things too much.. at least in formalization.

Currently, the formalization follows what's written in the view_arm repo (https://bitbucket.org/jean_pichon/view_arm, main.pdf, notblocked). In short, the semantics unconditionally allows relating different locations as an rmw pair. It's different from what the manual says, but I think it's a reasonable choice.

Also, May I ask if you could add Jean, Gil, and me in the conversation with Will Deacon?

cp526 commented

our semantics: nondeterministically succeed or fail.

discuss the caveat in the paper. architecture allows constrainted unpredictable (?) behaviors.