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

[Xen-changelog] [xen-3.4-testing] xend: notify xenpv device model that console info is ready



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1267009809 0
# Node ID cddd503fb25401fdaabe1344fdf5e060ca158e7a
# Parent  e96ed5ebfdf6d32dd3dc5d55a587df335d60bb8f
xend: notify xenpv device model that console info is ready

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>
xen-unstable changeset:   20968:351a34c2fd48
xen-unstable date:        Wed Feb 24 09:38:35 2010 +0000
---
 tools/python/xen/xend/XendDomainInfo.py |    5 +++++
 1 files changed, 5 insertions(+)

diff -r e96ed5ebfdf6 -r cddd503fb254 tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py   Mon Feb 22 18:51:31 2010 +0000
+++ b/tools/python/xen/xend/XendDomainInfo.py   Wed Feb 24 11:10:09 2010 +0000
@@ -1468,6 +1468,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-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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