-
Notifications
You must be signed in to change notification settings - Fork 32
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
Priority of CHERI page faults #484
Comments
The global rule is that CHERI checks come first - and anything existing in RISC-V comes after. (the only counter-example is a PC breakpoint - which is higher than CHERI checks on the PC - otherwise it's impossible to debug CHERI code)
I've already tied them together in section 5.4 (@buxtonpaul asked about this before) |
Ah ok, no I think that should be fine. Is that general rule written down anywhere?
Ah ok I missed that, thanks! |
I think the correct solution here is to add the PTE page faults into the exception check information on the instruction pages, and add the statement that the PTE page faults come first. PR to follow |
It didn't matter before #480 because CHERI page faults were indistinguishable from standard page faults, but now we need to specify their priorities. There are a couple of sources of page faults that you could do before or after the CHERI checks:
From a Sail point of view I think the easiest thing is if CHERI checks are the lowest priority; i.e. the above checks are done first.
Also there's a question of what happens if hardware A/D bit updates are supported but hardware CRG/CW bit updates are not, or vice versa. It would simplify the Sail implementation (and spec!) if they always had to be the same - either all hardware updates or none at all. Would that be acceptable?
The text was updated successfully, but these errors were encountered: