Re: Completing big real mode emulation

Alexander Graf
2010-03-20T08:34:58Z

On 20.03.2010, at 08:49, Avi Kivity wrote:

> On 03/19/2010 05:29 PM, Mohammed Gamal wrote:
>> Hello all,
>> As some of you might know, I've worked on supporting big real mode
>> emulation on VMX back in GSoC 2008. Looking at the Qemu GSoC ideas
>> list for this year, I found it among the possible ideas for a GSoC
>> project. I'd be interested in driving this feature towards completion,
>> and I have a few questions about it.
>>
>> - The kernel-space modifications needed to detect an invalid guest
>> state on VMX and drive emulation from that point was almost complete.
>> The part that was missing the most, is that the kvm x86 emulator
>> wasn't complete and didn't support the entire instruction set. I've
>> seen that the emulator has been the focus of some recent patches
>> (namely by Gleb Natapov). Is there anything else required to get big
>> real mode to work correctly on KVM?
>>
>
> IIRC there are some bugs in invalid guest state detection, so it may need some work. We don't support interrupt injection during invalid guest state, that will be tricky since it needs access to memory and interrupt injection currently happens from atomic context. Finally, there may still be missing instructions.
>
>> - Do we have other problems supporting big real mode on non-VMX
>> instruction sets? And do we have problems supporting it on the
>> userspace side?
>>
>
> No.

Interestingly enough Hannes just tried to boot a Windows 98 VM on SVM yesterday and failed, while the same VM worked (mostly) with -no-kvm. So apparently there's more missing to it than just big real mode.

I'd say that a GSoC project would rather focus on making a guest OS work than working on generic big real mode. Having Windows 98 support is way more visible to the users. And hopefully more fun to implement too, as it's a visible goal :-).

Alex