From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=42858 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OHvcX-00034Y-KP for qemu-devel@nongnu.org; Fri, 28 May 2010 05:12:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OHvcV-0006hl-I1 for qemu-devel@nongnu.org; Fri, 28 May 2010 05:12:49 -0400 Received: from va3ehsobe003.messaging.microsoft.com ([216.32.180.13]:28427 helo=VA3EHSOBE003.bigfish.com) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OHvcV-0006hZ-G6 for qemu-devel@nongnu.org; Fri, 28 May 2010 05:12:47 -0400 Date: Fri, 28 May 2010 11:12:37 +0200 From: "Roedel, Joerg" Message-ID: <20100528091237.GE3266@amd.com> References: <4BFE8F13.2000009@cs.vu.nl> <4BFEBF9E.90600@web.de> <20100528072405.GB3266@amd.com> <4BFF7485.3000606@cs.vu.nl> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <4BFF7485.3000606@cs.vu.nl> Subject: [Qemu-devel] Re: SVM emulation: EVENTINJ marked valid when a pagefault happens while issuing a software interrupt List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Erik van der Kouwe Cc: Jan Kiszka , "qemu-devel@nongnu.org" , Gleb Natapov On Fri, May 28, 2010 at 03:45:09AM -0400, Erik van der Kouwe wrote: > This is a ok, the problem is the event_inj field rather than the > exit_int_info field. From what I've seen the SVM specification neither > specifies that the CPU writes to this field nor does it explicitly > forbid it. Given the unclarity of the specification it may safest to > deal with this in the same way as the hardware does (although I don't > know which way this is, it seems inuitively unlikely that the hardware > would set event_inj to valid). The "AMD64 Architecture Programmer's Manual Volume 2" states in section 15.19: When an event is injected by means of this mechanism, the VMRUN instruction causes the guest to unconditionally take the specified exception or interrupt before executing the first guest instruction. Which implicitly means that. But it could be documented more explicitly, thats right :) Joerg