From: Avi Kivity <avi@redhat.com>
To: "Kevin O'Connor" <kevin@koconnor.net>,
"seabios@seabios.org" <seabios@seabios.org>,
KVM list <kvm@vger.kernel.org>
Subject: Re: seabios 0.6.1 regression
Date: Tue, 16 Nov 2010 12:47:33 +0200 [thread overview]
Message-ID: <4CE26145.90904@redhat.com> (raw)
In-Reply-To: <4CE15B49.4000509@redhat.com>
On 11/15/2010 06:09 PM, Avi Kivity wrote:
> On 11/15/2010 05:49 PM, Avi Kivity wrote:
>> On 11/15/2010 05:41 PM, Avi Kivity wrote:
>>>
>>> I think it's a miscompile.
>>>
>>> out/code16.o:
>>> 1a4: 3e ds
>>> 1a5: 6c insb (%dx),%es:(%edi)
>>>
>>> Note no 66 prefix.
>>>
>>
>> It isn't, that was random crap. All the insb() code is 32-bit.
>>
>
> Rewriting it to use inb / stos works (jecxz ; insb; loop doesn't) so
> it looks like a kernel bug in insb emulation.
>
Turns out is was a subtle bug in the tpr optimization we do for Windows
XP. The problem happens when we load the vapic option rom from the
firmware config interface. With inb / movb, writing the vapic area
happens in guest context, which the kernel is prepared to handle. With
insb, the write happens from kvm, which is then undone on the next
entry, leading to the tpr being set to a high value.
I'll fix it temporarily by clearing the vapic area from the option rom.
Later I'd like to add a proper reset to kvm tpr optimization within
qemu-kvm (helps when we dual boot Windows XP and some other OS).
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2010-11-16 10:47 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-15 13:39 seabios 0.6.1 regression Avi Kivity
2010-11-15 15:04 ` Avi Kivity
2010-11-15 15:12 ` Avi Kivity
2010-11-15 15:34 ` Avi Kivity
2010-11-15 15:41 ` Avi Kivity
2010-11-15 15:49 ` Avi Kivity
2010-11-15 16:09 ` Avi Kivity
2010-11-16 0:18 ` Kevin O'Connor
2010-11-16 9:05 ` Avi Kivity
2010-11-16 10:47 ` Avi Kivity [this message]
2010-11-16 13:19 ` Alexander Graf
2010-11-16 14:15 ` Avi Kivity
2010-11-16 14:17 ` Alexander Graf
2010-11-16 14:27 ` Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CE26145.90904@redhat.com \
--to=avi@redhat.com \
--cc=kevin@koconnor.net \
--cc=kvm@vger.kernel.org \
--cc=seabios@seabios.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox