From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gleb Natapov Subject: Re: [PATCH 2/2] KVM: VMX: Initialize vm86 TSS only once. Date: Sun, 27 Feb 2011 17:52:19 +0200 Message-ID: <20110227155219.GA22252@redhat.com> References: <1298282879-23075-1-git-send-email-gleb@redhat.com> <1298282879-23075-2-git-send-email-gleb@redhat.com> <4D6A710B.7070705@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: mtosatti@redhat.com, kvm@vger.kernel.org To: Avi Kivity Return-path: Received: from mx1.redhat.com ([209.132.183.28]:60317 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752162Ab1B0PwV (ORCPT ); Sun, 27 Feb 2011 10:52:21 -0500 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p1RFqKB0002013 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Sun, 27 Feb 2011 10:52:21 -0500 Content-Disposition: inline In-Reply-To: <4D6A710B.7070705@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: 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.