Currently we do nothing about the hardware PLIC when in VS/VU-mode, which means that when an external interrupt occurs for the PLIC, it only knows to appear in mip.SEIP. In this case:
The guest (VS) receives a spurious external interrupt because nothing happens in its own PLIC.
The host (HS) isn't being preempted
For now, Linux just happens to work because the guest is eventually preempted anyway. But this could be causing all sorts of correctness and performance issues.
Currently we do nothing about the hardware PLIC when in VS/VU-mode, which means that when an external interrupt occurs for the PLIC, it only knows to appear in
mip.SEIP
. In this case:For now, Linux just happens to work because the guest is eventually preempted anyway. But this could be causing all sorts of correctness and performance issues.