From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: xen-unstabel + linux 4.2: MMIO emulation failed: d23v0 64bit @ 0010:ffffffff814e2b1c -> 66 89 02 48 8d 55 c0 48 89 5d c0 44 89 65 c8 e8 Date: Mon, 27 Jul 2015 15:07:39 +0100 Message-ID: <55B63B2B.8070508@citrix.com> References: <34b88d3d0f41027630a7fdc85675601e@eikelenboom.it> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <34b88d3d0f41027630a7fdc85675601e@eikelenboom.it> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: linux@eikelenboom.it, xen-devel@lists.xen.org Cc: Paul Durrant List-Id: xen-devel@lists.xenproject.org On 24/07/15 19:56, linux@eikelenboom.it wrote: > Hi All, > > On my AMD system running xen-unstable (last commit: ), > after a few restarts of a HVM guest with pci-passthrough i got these > on shutdown of the guest: > (never seen this before, so it should be something triggered by a > recent commit) > > -- > Sander > > > .... (probably lost before but that's lost) > > (XEN) [2015-07-24 18:46:53.732] domain_crash called from io.c:166 > (XEN) [2015-07-24 18:46:53.732] io.c:165:d23v0 Weird HVM ioemulation > status 1. > (XEN) [2015-07-24 18:46:53.732] domain_crash called from io.c:166 > (XEN) [2015-07-24 18:46:53.732] io.c:165:d23v0 Weird HVM ioemulation > status 1. > (XEN) [2015-07-24 18:46:53.732] domain_crash called from io.c:166 > (XEN) [2015-07-24 18:46:53.732] io.c:165:d23v0 Weird HVM ioemulation > status 1. Paul: this is very likely an issue your emulation series. 66 89 02 is mov %ax,(%rdx), but has ended up in handle_pio() which seems wrong. Sander: Please can you rerun with the following debug diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c index d3b9cae..7560d08 100644 --- a/xen/arch/x86/hvm/io.c +++ b/xen/arch/x86/hvm/io.c @@ -163,7 +163,9 @@ int handle_pio(uint16_t port, unsigned int size, int dir) break; default: gdprintk(XENLOG_ERR, "Weird HVM ioemulation status %d.\n", rc); - domain_crash(curr->domain); + show_execution_state(curr); + dump_execution_state(); + domain_crash_synchronous(curr->domain); break; } ~Andrew