Re: [PATCH] do not keep interrupt window closed by sti in real mode

Avi Kivity
2009-04-08T08:21:42Z

H. Peter Anvin wrote:
> Avi Kivity wrote:
>
>> I'm guessing the problem is due to the second instruction. We don't
>> clear the 'blocked by interrupt shadow' flag when we emulate, which
>> extends interrupt shadow by one more instruction. If the instruction
>> sequence is 'sti hlt' we end in an inconsistent state.
>>
>>
>
> Ah, and since we're in real mode, we have to emulate everything (at
> least on some hardware), right?

Well, not everything. We use vm86 mode in the guest to emulate real
mode. Of course that doesn't support all instructions, so we emulate
these. Unfortunately it also doesn't support big real mode.

> So we really do need to clear the
> interrupt shadow bit in the interpreter... I don't see a way around that.
>

Yes.

> Otherwise not just STI but MOV SS shadows will break, and in real mode
> MOV SS shadow is crucial.
>

'mov ss' executes natively.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.