[RISC-V] [tech-fast-int] [RISC-V] [tech-privileged] Resumable NMI proposal

Jonathan Behrens <behrensj@...>

On Fri, Jan 22, 2021 at 9:16 AM Krste Asanovic via lists.riscv.org <krste=berkeley.edu@...> wrote:

>>>>> On Tue, 19 Jan 2021 10:36:26 -0600, Brian Grayson <brian.grayson@...> said:

| I'll jump in with a few more. :)
| From an architectural point of view, I don't like the fact that an NMI blocks further NMI until it leaves its handler. There may be NMIs that can save
| the state they need, and then unblock further NMIs, i.e., they might be stackable in some cases. This spec precludes that by making rnmie not
| software-writable.

| I also fundamentally dislike the use of the term "non-maskable", because the proposed rnmie bit literally masks non-maskable interrupts. That's an
| impossible thing to put into a spec, as remarked upon in your NOTE.

 rnmie should be settable but not clearable in M-mode to support
nesting NMIs.

Could you go into more detail on how nesting NMIs could work? Shouldn't it only be safe to execute MNRET with rnmie clear, because any NMI that came in between setting mnepc and executing MNRET would irreversibly clobber mnepc?