[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [BUG] Emulation issues



> -----Original Message-----
> From: Roger Pau Monnà [mailto:roger.pau@xxxxxxxxxx]
> Sent: 29 July 2015 11:37
> To: Paul Durrant; xen-devel; Andrew Cooper
> Subject: Re: [BUG] Emulation issues
> 
> El 29/07/15 a les 12.27, Paul Durrant ha escrit:
> >> -----Original Message-----
> >> From: Roger Pau Monnà [mailto:roger.pau@xxxxxxxxxx]
> >> Sent: 29 July 2015 11:17
> >> To: xen-devel; Andrew Cooper; Paul Durrant
> >> Subject: [BUG] Emulation issues
> >>
> >> Hello,
> >>
> >> While trying to debug a hotplug scripts issue, I came across what seems
> >> to be an emulation bug inside of Xen. The result of this is a bunch of
> >> repeated messages on the serial console:
> >>
> >
> > Was there anything of interest before this? You got an 'unhandleable'
> emulation which generally should not happen, but I guess there may be a
> shutdown race in tearing down the ioreq server list and sending emulation
> requests which may cause hvm_send_ioreq() to return
> X86EMUL_UNHANDLEABLE. It would be good to better understand the
> sequence of events.
> 
> I don't think there's anything relevant before the messages I've posted,
> here is a more complete log:
> 
> (XEN) irq.c:386: Dom91 callback via changed to Direct Vector 0x93
> (XEN) irq.c:386: Dom92 callback via changed to Direct Vector 0x93
> (XEN) irq.c:276: Dom91 PCI link 0 changed 5 -> 0
> (XEN) irq.c:276: Dom91 PCI link 1 changed 10 -> 0
> (XEN) irq.c:276: Dom91 PCI link 2 changed 11 -> 0
> (XEN) irq.c:276: Dom91 PCI link 3 changed 5 -> 0
> (XEN) irq.c:276: Dom92 PCI link 0 changed 5 -> 0
> (XEN) irq.c:276: Dom92 PCI link 1 changed 10 -> 0
> (XEN) irq.c:276: Dom92 PCI link 2 changed 11 -> 0
> (XEN) irq.c:276: Dom92 PCI link 3 changed 5 -> 0
> INIT: Id "T0" respawning too fast: disabled for 5 minutes
> (XEN) io.c:165:d83v0 Weird HVM ioemulation status 1.
> (XEN) domain_crash called from io.c:166
> (XEN) io.c:165:d83v0 Weird HVM ioemulation status 1.
> (XEN) domain_crash called from io.c:166
> (XEN) io.c:165:d83v0 Weird HVM ioemulation status 1.
> (XEN) domain_crash called from io.c:166
> (XEN) io.c:165:d83v0 Weird HVM ioemulation status 1.
> (XEN) domain_crash called from io.c:166
> (XEN) io.c:165:d83v0 Weird HVM ioemulation status 1.
> (XEN) domain_crash called from io.c:166
> (XEN) io.c:165:d83v0 Weird HVM ioemulation status 1.
> (XEN) domain_crash called from io.c:166
> (XEN) io.c:165:d83v0 Weird HVM ioemulation status 1.
> (XEN) domain_crash called from io.c:166
> (XEN) io.c:165:d83v0 Weird HVM ioemulation status 1.
> (XEN) domain_crash called from io.c:166
> (XEN) io.c:165:d83v0 Weird HVM ioemulation status 1.
> (XEN) domain_crash called from io.c:166
> (XEN) io.c:165:d83v0 Weird HVM ioemulation status 1.
> (XEN) domain_crash called from io.c:166
> 
> If you can provide a debug/trace patch I can run the same workload with
> it in order to trace the sequence of events.
> 

Could you try this?

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 30acb78..1bc3cc9 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -145,6 +145,8 @@ static int hvmemul_do_io(
             return X86EMUL_UNHANDLEABLE;
         goto finish_access;
     default:
+        gprintk(XENLOG_ERR, "weird emulation state %u\n",
+                vio->io_req.state);
         return X86EMUL_UNHANDLEABLE;
     }

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index ec1d797..38d6d99 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2747,6 +2747,7 @@ int hvm_send_ioreq(struct hvm_ioreq_server *s, ioreq_t *pr
         }
     }

+    gprintk(XENLOG_ERR, "unable to contact device model\n");
     return X86EMUL_UNHANDLEABLE;
 }

Paul

> Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.