From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gleb Natapov Subject: Re: [PATCH RFC] KVM: inject #UD if instruction emulation fails while vcpu is in cpl==3 Date: Thu, 6 May 2010 13:06:45 +0300 Message-ID: <20100506100645.GB24787@redhat.com> References: <20100429115847.GW10044@redhat.com> <4BE288CE.5050801@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]:35665 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757477Ab0EFKGr (ORCPT ); Thu, 6 May 2010 06:06:47 -0400 Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o46A6lcY009857 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 6 May 2010 06:06:47 -0400 Content-Disposition: inline In-Reply-To: <4BE288CE.5050801@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Thu, May 06, 2010 at 12:15:58PM +0300, Avi Kivity wrote: > On 04/29/2010 02:58 PM, Gleb Natapov wrote: > >Do not kill VM If instruction emulation fails while vcpu is in > >userspace. Inject #UD instead in a hope that guest OS will kill offending > >process. Emulation failure is still traced by ftrace point to help > >analyze the problem. > > Still there's the risk here that a critical failure goes unnoticed. > ftrace isn't on at all times. > Kvm_stat will still show that there was emulation failure, so if strange application behaviour is reported kvm_stat output will have hints where to look. Next step in analyzing the problem will be enabling emulator tracing. > We can probably inject a #UD unconditionally and exit to userspace. > Userspace would then report the problem to the user and reenter the > guest, which would then recover or not. > By "unconditionally" you mean even if guest is in kernel mode? There is no point in trying to continue after that happens. Instead of getting paused VM at exact place where problem happened and easily analyzable we will get misbehaved VM with undefined state. -- Gleb.