-
Notifications
You must be signed in to change notification settings - Fork 108
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
MCS: merge master into rt #680
Conversation
The worklow_dispatch trigger adds a button in the GitHub UI that lets one trigger the workflow manually. Useful for testing the workflows. Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Rafal Kolanski <[email protected]>
Switch exclusion to Refine. Signed-off-by: Rafal Kolanski <[email protected]>
Quite a few issues remain, notably validity of ASID maps and relationship to ASID table is missing from valid_arch_state' Signed-off-by: Rafal Kolanski <[email protected]>
Signed-off-by: Rafal Kolanski <[email protected]>
Only text replacement of RISCV64->AARCH64 for now. Signed-off-by: Rafal Kolanski <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Co-authored-by: Rafal Kolanski <[email protected]> Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Don't store the bottom 12 bits of the base address for page table PTEs, because we know they are zero. This gives us implicit alignment to pageBits in the page table walker. The C code stores only 36 significant bits, whereas this commit still uses a full 64-bit machine word for the ppn in Haskell. To be adjusted in a future change. Signed-off-by: Gerwin Klein <[email protected]>
Co-authored-by: Rafal Kolanski <[email protected]> Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Add VCPU/hyp material from ARM_HYP, fix up broken lemmas. Co-authored-by: Rafal Kolanski <[email protected]> Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Add VCPU/hyp lemmas from ARM_HYP, fix and update failing lemmas. Leave 1 sorry on pspace_canonical, which might not be needed for AARCH64. Co-authored-by: Rafal Kolanski <[email protected]> Signed-off-by: Gerwin Klein <[email protected]>
Co-authored-by: Rafal Kolanski <[email protected]> Signed-off-by: Gerwin Klein <[email protected]>
Co-authored-by: Rafal Kolanski <[email protected]> Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Rafal Kolanski <[email protected]>
Signed-off-by: Rafal Kolanski <[email protected]>
The way we handle vcpuBits on AARCH64 is different to ARM_HYP. This seems the most logical place to put vcpuBits_def to aid automation. Signed-off-by: Rafal Kolanski <[email protected]>
Signed-off-by: Rafal Kolanski <[email protected]>
Signed-off-by: Rafal Kolanski <[email protected]>
Signed-off-by: Rafal Kolanski <[email protected]>
Up to and including handleVMFault_corres which needed a major overhaul. Signed-off-by: Rafal Kolanski <[email protected]>
Co-authored-by: Rafal Kolanski <[email protected]> Signed-off-by: Gerwin Klein <[email protected]>
This required a lot of adaptation from ARM_HYP, rearranging, and fixing. The VCPU lemmas are mostly now constrained to one area, making it theoretically possible to make a VCPU theory in the future. Signed-off-by: Rafal Kolanski <[email protected]>
Somehow we missed this on the first pass. Adjusted existing proofs. Signed-off-by: Rafal Kolanski <[email protected]>
Signed-off-by: Corey Lewis <[email protected]>
In particular, try to remove as many as possible _tac methods that refer to system-generated variable names. Any remaining uses are explicitly protected by a rename_tac. Signed-off-by: Corey Lewis <[email protected]>
Signed-off-by: Michael McInerney <[email protected]>
Signed-off-by: Michael McInerney <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Rafal Kolanski <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
The code draws in table.ML from the Isabelle source, which changed in the 2023 release. This commit adds further library functions from Isabelle library.ML and extracts the parts of unsynchronized.ML that work with mlton. Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Gerwin Klein <[email protected]>
Signed-off-by: Corey Lewis <[email protected]>
Signed-off-by: Corey Lewis <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good work. There's a whole lot more mapsto
and corresKsimp
going on in rt
than I thought.
Since the test is still set to Isabelle2022 we should probably do a PR on mcs.xml
in the manifest repo first and the re-run the tests here to double-check before we merge.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
Yeah that is a lot of corresKsimp
, almost all mine, I think. It would be interesting to go through and see how quickly they could be replaces with the new corres
method.
apply (rule alternative_valid; (solves wpsimp)?) | ||
apply (rule alternative_wp[where P=P and P'=P for P, simplified]; (solves wpsimp)?) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I forgot to point this out when I made this PR. alternative_valid
was removed on master due to not being used, but did have a couple of uses in rt
as part of some forward reasoning proofs.
Are we ok with what I've done here, which is basically inlining it in the two places it was used? The obvious to me other options would be to either add alternative_valid
back to Nondet_VCG
, or to rework these proofs to be backwards.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd be OK with what you've done here, but wouldn't mind if these proofs were reworked to be backwards. I'm pretty sure they'd be my proofs originally, so I'd be happy to do that. I think these were for preemption_point
, which is not the nicest function to deal with, so it might not be so straightforward.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd be fine with either. Definitely no problems with it being reworked as backwards proof. Could also be in a separate PR.
This includes the update to Isabelle2023. As usual with merges, the last commit is probably the only one that it makes sense to review.