From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: assumptions when hvm guest uses string instructions on MMIO memory Date: Wed, 29 Nov 2006 17:19:56 +0000 Message-ID: References: <456DC393.76E4.0078.0@novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <456DC393.76E4.0078.0@novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Jan Beulich , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On 29/11/06 16:29, "Jan Beulich" wrote: > Likewise I find it at least strange that all the I/O related > hvm_copy_{from,to}_guest_virt invocations have their return value > cast to void instead of forcing page faults into the guest. While I > can see the point for single datum instructions (the CPU supposedly > did the checking, except perhaps for ins/outs), movs where the > non-mmio address crosses a page boundary and lods/stos because > they're not being broken up would still seem to cause issues. Even > in the single datum case I think it would be much more consistent > to force a fault into the guest rather than silently ignoring any > problems. Although it's not going to happen for 3.0.4 now, my changes to the x86_emulate code are being done with the intention that it can replace the mmio emulator for 3.0.5. This will present a clean uniform interface for all memory accesses performed during emulation of an instruction. So don't get too worked up about the deficiencies of the current mmio code, but do feel free to kick the x86_emulate routines. :-) -- Keir