WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] xend: notify xenpv device model that console info is

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] xend: notify xenpv device model that console info is ready
From: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
Date: Tue, 23 Feb 2010 16:03:48 +0900
Cc: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Delivery-date: Mon, 22 Feb 2010 23:04:53 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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
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
<Prev in Thread] Current Thread [Next in Thread>