define asynchronous interrupt priorities#802
define asynchronous interrupt priorities#802JamesKenneyImperas wants to merge 1 commit intoriscv:mainfrom
Conversation
timsifive
left a comment
There was a problem hiding this comment.
The spec changes look right to me. I have two requests for the PR:
- Can you give it a more descriptive title? Something like "define asynchronous interrupt priorities" or anything where someone reading just the title could guess what the change relates to.
- Don't include the PDF in the PR. It just leads to conflicts and a lot of churn.
dd59bef to
c6d9ef6
Compare
timsifive
left a comment
There was a problem hiding this comment.
Looks good, but I'd like @pdonahue-ventana's opinion too. He has a better head for stuff like this.
|
This table in the debug spec mirrors table 3.7 of the latest priv spec which doesn't have interrupts. This PR specifies the priority of interrupts with respect to non-debug exceptions, not just debug exceptions. I don't think that the priv spec defines that interrupt vs. synchronous exception priority and it's not appropriate for the debug spec to define that. |
|
Table 3.7 doesn't mention interrupts because they are not synchronous traps on the current instruction resulting from execution of that instruction. The behaviour of interrupts in the case we are considering here (enabling a pending interrupt by execution of The issue is that the Debug Specification introduces other high priority synchronous events with timing 'after' (e.g. stepi trigger events), and therefore needs to define the priority of interrupts with respect to those. For example, if you stepi over an I agree that it feels a bit awkward inserting interrupts into the table as I have tried to do; can you think of a better way to make clear where interrupts sit? Thanks, James. |
|
I see your point. Let me think about it. |
|
Is this a bugfix, clarification, or something else? |
|
It's an attempt to specify something that is missing entirely at the moment - see our previous discussion on #796. Not sure whether that counts as a bugfix or clarification. |
|
This PR clarifies the priority between precise/synchronous interrupts and triggers with timing=after. The current Spike does not provide this behavior. Is there any update on this clarification? |
|
This seems to have stalled but is rather crucial to resolve before v1.0.0 and we commit to an implementation in the Sail model. As an outsider this seems the sensible thing to do and I don't see anyone claiming that such a priority is a bad idea? |
Hi @timsifive - I've made an attempt at this (reference #796)