From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gleb Natapov Subject: Re: [PATCH 1/3] KVM: x86 emulator: Fix task switch privilege checks Date: Wed, 25 Jan 2012 20:29:40 +0200 Message-ID: <20120125182940.GA8540@redhat.com> References: <1327335048-31925-1-git-send-email-kwolf@redhat.com> <1327335048-31925-2-git-send-email-kwolf@redhat.com> <20120124140316.GD19255@amd.com> <4F1EBCF1.9050808@redhat.com> <20120124141630.GD9571@redhat.com> <4F1EBF32.6020904@redhat.com> <20120124162350.GD538@redhat.com> <20120125160058.GG19255@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Kevin Wolf , kvm@vger.kernel.org, yoshikawa.takuya@oss.ntt.co.jp, avi@redhat.com, mtosatti@redhat.com To: Joerg Roedel Return-path: Received: from mx1.redhat.com ([209.132.183.28]:51205 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750854Ab2AYS3o (ORCPT ); Wed, 25 Jan 2012 13:29:44 -0500 Content-Disposition: inline In-Reply-To: <20120125160058.GG19255@amd.com> Sender: kvm-owner@vger.kernel.org List-ID: On Wed, Jan 25, 2012 at 05:00:58PM +0100, Joerg Roedel wrote: > On Tue, Jan 24, 2012 at 06:23:50PM +0200, Gleb Natapov wrote: > > On Tue, Jan 24, 2012 at 03:24:50PM +0100, Kevin Wolf wrote: > > > > However, task_switch_interception() itself does some more based on the > > > value of reason, for example it decides whether or not to call > > > skip_emulated_instruction(). > > > > > Joerg need to help us here. If intercept of task switch happens before > > rip is advanced past instruction that cause it we have to know somehow > > that task switch was caused by instruction. It is not enough that HW > > checks permission, we still lack essential info. > > Hmm, the RIP in the VMCB points to the instruction causing the task > switch. This is also true for lcall and ljmp. But in my experiments I > have seen exit_int_info.valid = 1 for task-switches that went through > the IDT. But I havn't tested the VM86 case, though. > I can confirm that I get exit_int_info.valid = 1 for all scenarios when task switch is caused by idt event. Just checked it here. > Kevin, can you please re-verify that exit_int_info.valid is always 0 in > your experiment? On what hardware have you tested this? > > Thanks, > > Joerg > > -- > AMD Operating System Research Center > > Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach > General Managers: Alberto Bozzo > Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632 -- Gleb.