From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kevin Wolf Subject: Re: [PATCH v2 0/3] Fix task switches into/out of VM86 Date: Mon, 30 Jan 2012 11:35:00 +0100 Message-ID: <4F267254.7040900@redhat.com> References: <1327692216-20450-1-git-send-email-kwolf@redhat.com> <20120127195239.GB2938@redhat.com> <4F265961.3070501@redhat.com> <20120130085541.GI30469@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: kvm@vger.kernel.org, joerg.roedel@amd.com, yoshikawa.takuya@oss.ntt.co.jp, avi@redhat.com, mtosatti@redhat.com To: Gleb Natapov Return-path: Received: from mx1.redhat.com ([209.132.183.28]:57745 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751798Ab2A3Kbi (ORCPT ); Mon, 30 Jan 2012 05:31:38 -0500 In-Reply-To: <20120130085541.GI30469@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Am 30.01.2012 09:55, schrieb Gleb Natapov: > On Mon, Jan 30, 2012 at 09:48:33AM +0100, Kevin Wolf wrote: >> Am 27.01.2012 20:52, schrieb Gleb Natapov: >>> On Fri, Jan 27, 2012 at 08:23:33PM +0100, Kevin Wolf wrote: >>>> I believe this should work with both VMX and SVM now. Gleb, J=C3=B6= rg, can one of >>>> you test this with SVM? I did some testing on my buggy processor a= nd it looks >>>> as good as it gets, but it would be better if you could confirm. >>>> >>> You forgot to set cpl to 3 in vmcb in svm_set_rflags() when vm86 is= enabled, no? >> >> SVM updates the CPL when the segment selector for CS is loaded. From= a >> svm.c POV, segment selectors are updated immediately after set_rflag= s, >> so it wouldn't really make a difference to do it twice. >> > It is too subtle to rely on that. The fact is that checking cpl after > set_rflags provides incorrect value. This better be fixed. Depends on what value you consider to be correct between reloading eflags and reloading cs. I think it's logical and more consistent to sa= y that CPL only changes when cs is reloaded, but you could argue that it'= s effective with the reload of rflags. It doesn't make a difference to guests, so we can decide to choose whatever we like. Depending on what we decide on (Gleb and I disagree on this, so more input would be helpful), either VMX or SVM need a cleanup. I think it can be done independent from and on top of this fix. > BTW does load_state_from_tss16() need the same fix? The manual says "Do not use a 16-bit TSS to implement a virtual-8086 task." Actually, I don't think you could do that, even if you wanted, with a 16-bit flags field. Kevin