>
> I've added even more logging, but still don't appear to be any closer
to
> figuring out what's going on...
>
> I start my smtp server, wait for it to finish booting, then give it a
> 'xm shutdown'. It does its orderly shutdown and then I see:
>
> do_sched_op gets called with SCHEDOP_shutdown
> domain_shutdown gets called
> __domain_finalise_shutdown gets called
> send_guest_global_virq(dom0, VIRQ_DOM_EXC) gets called
>
> Then nothing. Nothing in xend.log. What should happen next? Should the
> domain get destroyed before the backend stuff gets cleaned up, or is
it
> the other way around?
>
> I forgot to make xenstored trace so I'll run that again and see what
> that tells me
>
> James
>
I would expect that upon xen doing "send_guest_global_virq(dom0,
VIRQ_DOM_EXC)", that xenstored would get an event on the port that it
previously bound to VIRQ_DOM_EXC, but this isn't happening...
When this code executes:
"
if ((rc = xc_evtchn_bind_virq(xce_handle, VIRQ_DOM_EXC)) == -1)
barf_perror("Failed to bind to domain exception virq
port");
virq_port = rc;
"
virq_port is set to 18.
handle_event only ever sees ports 17 (often) and 4 (seldom), never 18...
sure enough, if I remove the 'if (port == virq_port)' in 'handle_event'
and make it always call domain_cleanup then everything works as it
should, but obviously something is really wrong...
despite what you said about restarting xenstored, if I do restart it,
the VIRQ_DOM_EXC signalling from xen to Dom0 works correctly...
curious...
James
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|