From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 6/6] KVM: x86: Emulator support for TF Date: Tue, 23 Feb 2010 13:04:05 +0200 Message-ID: <4B83B625.2080207@redhat.com> References: <20100223095553.GC29041@redhat.com> <4B83A9B1.2060103@siemens.com> <20100223102620.GF29041@redhat.com> <4B83AFE1.3070905@siemens.com> <20100223110054.GI29041@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Jan Kiszka , Marcelo Tosatti , kvm To: Gleb Natapov Return-path: Received: from mx1.redhat.com ([209.132.183.28]:6209 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751961Ab0BWLEJ (ORCPT ); Tue, 23 Feb 2010 06:04:09 -0500 In-Reply-To: <20100223110054.GI29041@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 02/23/2010 01:00 PM, Gleb Natapov wrote: >>> >>> They will not trigger before that. They will be queued for the next >>> entry and queuing another one will either overwrite the previous one, >>> or will queue double fault (depending on what what the first exception). >>> >> The will not stack as the instruction failed, thus no singlestep will be >> queued as well. >> > Instruction failed doesn't mean emulation failed, so lets see what > happens when you single step over instruction that generates page fault. > #PF is queued and x86_emulate_insn() returns 0 to emulate_instruction() > no you call queue_singlestep() which calls kvm_queue_exception(vcpu, DB_VECTOR); > and this cause #DF to be injected. > This looks like a test case btw. We need to test, at least: - unemulated single step - emulated single step successful insn - emulated single step faulting insn and probably more. -- error compiling committee.c: too many arguments to function