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@jp.fujitsu.com>
This commit is contained in:
Keir Fraser committed 2010-02-24 09:38:35 +00:00
1 parent 79e0b9479d
commit 078a073a6c
1 file changed
+5
+5
View File
@@ -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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.