-
Notifications
You must be signed in to change notification settings - Fork 105
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
AArch64 fastpath proofs #739
Commits on Mar 25, 2024
-
lib: generic monadic_rewrite_state_assert/stateAssert
These rules completely discarded the assertion and directly linked the assertion with the precondition. The general form allows assuming the assertion in subsequent statements under the assumption on non-failure. Signed-off-by: Rafal Kolanski <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0033f2d - Browse repository at this point
Copy the full SHA 0033f2dView commit details -
crefine: update for monadic_rewrite_stateAssert
Signed-off-by: Rafal Kolanski <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for f2f38b7 - Browse repository at this point
Copy the full SHA f2f38b7View commit details -
haskell+design: add fastpathKernelAssertions
Add fastpathKernelAssertions to start of callKernel. Fastpath rewrite proofs don't get the state relation, so can't cross properties over from the abstract invariants. We also can't rely on asserts on the fast path side, since any failure in the rewrite must be correlated with failure in the original, and the locations and conditions of those failures can be quite distant. Signed-off-by: Rafal Kolanski <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c407d26 - Browse repository at this point
Copy the full SHA c407d26View commit details -
refine+crefine: define and handle fastpathKernelAssertions
Currently, this is only interesting on AARCH64 where we need no_fail preconditions for looking up an ASID map entry. Signed-off-by: Rafal Kolanski <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 56e125d - Browse repository at this point
Copy the full SHA 56e125dView commit details -
aarch64 crefine: fastpath specs for call and replyrecv
Update the existing fastpath function "design" specs with AArch64-specific functionality: * looking up the VMID / hardware asid is more complex, going via the ASID map, with additional checks necessary * redundant check for ReplyMaster no longer happens These specs will be shown to be equivalent to the slow path (callKernel) and fastpath C code. Signed-off-by: Rafal Kolanski <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for dba6177 - Browse repository at this point
Copy the full SHA dba6177View commit details -
aarch64 crefine: prove fastpath equivalent to slow path
Plus cleanup and commentary. Signed-off-by: Rafal Kolanski <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 467ef27 - Browse repository at this point
Copy the full SHA 467ef27View commit details -
aarch64 crefine: prove fastpath equivalent to C fastpath
Shows fastpath spec refines down to C for Call and ReplyRecv. Includes much effort to document what is happening in the main proofs, updates for AArch64-specific and 64-bit-specific mechanisms and bitfields. Signed-off-by: Rafal Kolanski <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 754acc3 - Browse repository at this point
Copy the full SHA 754acc3View commit details -
proof: remove AArch64 quick_and_dirty CRefine
CRefine on AARCH64 is now sorry-free, and there are no other sorried developments at this time. Signed-off-by: Rafal Kolanski <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4efd093 - Browse repository at this point
Copy the full SHA 4efd093View commit details