On Sun, Aug 19, 2012 at 02:39:04PM +0300, Avi Kivity wrote: > On 08/19/2012 12:27 PM, Avi Kivity wrote: > > On 08/17/2012 08:53 AM, Gerd Hoffmann wrote: > >> This looks suspious. vcpu migration issue? Or just something missing > >> in the trace? > > Looks like tracing with a too-small buffer size. I generally trace using > > > > trace-cmd record -e kvm -b 100000 > > > > and with fingers crossed. > > > > The RET FAR instruction failure (which trace-cmd report decodes) is > > probably not the original failure. > > In fact it is, we mis-emulated stack operations when SS.B=0 but the > address size was 32-bits, and there are bits set in the top 16 bits of ESP. > > Why ESP has bits set in the top 16 bits is another question. Is seabios > polluting those bits?
During the WinXP install/boot, when it makes 16bit calls it only resets the lower bits of %esp. It expects the 16bit code to only use %sp. Quite spectacularly, WinXP requires the top bits of %esp to not be mangled by the 16bit code. SeaBIOS is very careful to not spuriously alter calling state. This includes backing up the top bits of %esp and restoring them on return. -Kevin _______________________________________________ SeaBIOS mailing list [email protected] http://www.seabios.org/mailman/listinfo/seabios
