On Mon, Jan 17, 2022 at 06:45:36PM +0100, Paolo Bonzini wrote:
On 1/14/22 16:19, Mark Rutland wrote:
I also think there is another issue here. When an IRQ is taken from SIE, will
user_mode(regs) always be false, or could it be true if the guest userspace is
running? If it can be true I think tha context tracking checks can complain,
and it*might* be possible to trigger a panic().
I think that it would be false, because the guest PSW is in the SIE block
and switched on SIE entry and exit, but I might be incorrect.
Ah; that's the crux of my confusion: I had thought the guest PSW would
be placed in the regular lowcore *_old_psw slots. From looking at the
entry asm it looks like the host PSW (around the invocation of SIE) is
stored there, since that's what the OUTSIDE + SIEEXIT handling is
checking for.
Assuming that's correct, I agree this problem doesn't exist, and there's
only the common RCU/tracing/lockdep management to fix.