On Sun, Feb 27, 2011 at 05:43:07PM +0200, Avi Kivity wrote:
> On 02/21/2011 12:07 PM, Gleb Natapov wrote:
> >Currently vm86 task is initialized on each real mode entry and vcpu
> >reset. Initialization is done by zeroing TSS and updating relevant
> >fields. But since all vcpus are using the same TSS there is a race where
> >one vcpu may use TSS while other vcpu is initializing it, so the vcpu
> >that uses TSS will see wrong TSS content and will behave incorrectly.
> >Fix that by initializing TSS only once.
> 
> Applied, thanks.
> 
> According to my reading of the code, if KVM_SET_TSS_ADDR is not
> invoked, the guest would fail both before and after the patch, yes?
> 
Hmmm. Actually no. Before the patch guest that doesn't use KVM_SET_TSS_ADDR
will use the top of slot zero. Should I fix that (how?), or should we
drop support for those old guests? The problem with using top of slot
zero is that this memory is available for guest use and we do not even
put it into e820 map as far as I see. Also there are patches floating
around that re-arrange memslots or even put them in a tree. They will
break old guests too.

--
                        Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to