|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [PATCH] xend: notify xenpv device model that console inf
On Tue, Feb 23, 2010 at 04:03:48PM +0900, Kouya Shimura wrote:
Content-Description: message body text
> Sometimes PV domain with vfb doesn't boot up. /sbin/kudzu is stuck.
> After investigation, I've found that the evtchn for console is not
> bound at all.
>
> Normal sequence of evtchn initialization in qemu-dm for xenpv is:
> 1) watch xenstore backpath (/local/domain/0/backend/console/<domid>/0)
> 2) read console info (/local/domain/<domid>/console/{type, ring-ref, port..})
> 3) bind the evtchn to the port.
>
> But in some case, xend writes to the backpath before the console info
Would it be better to fix the race condition?
> is prepared, and never write to the backpath again. So the qemu-dm fails
> at 2) and never reach to 3).
>
> When this happens, manually xenstore-write command on Domain-0
> resumes the guest.
>
> Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
>
> diff -r 4ba4323889b9 tools/python/xen/xend/XendDomainInfo.py
> --- a/tools/python/xen/xend/XendDomainInfo.py Mon Feb 22 18:47:22 2010 +0000
> +++ b/tools/python/xen/xend/XendDomainInfo.py Tue Feb 23 14:50:40 2010 +0900
> @@ -1642,6 +1642,11 @@ class XendDomainInfo:
> console_uuid = serial_consoles[0].get('uuid')
> self.info.console_update(console_uuid, 'location',
> self.console_port)
> + # Notify xenpv device model that console info is ready
> + if not self.info.is_hvm() and self.info.has_rfb():
> + console_ctrl = self.getDeviceController('console')
> + # The value is unchanged. Just for xenstore watcher
> + console_ctrl.writeBackend(0, 'uuid', console_uuid)
>
>
> # Update VNC port if it exists and write to xenstore
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|