The following patch is a first fix for qemu to rectify stubdom hanging
at boot time.
It leads to another issue when the device model tries to attach console-1
(I'm using linux-2.6-pvops.git as dom0):
- tools/ioemu-remote/hw/xen_console.c: 'con_connect' calls
'xc_gnttab_map_grant_ref' which never returns,
- tools/libxc/xc_linux.c: 'xc_gnttab_map_grant_ref' hangs calling 'mmap',
- linux-2.6-pvops.git/drivers/xen/gntdev.c: 'gntdev_mmap' calls
'apply_to_page_range' and never returns.
A short gntdev debug log:
[ 495.734675] gntdev_ioctl_map_grant_ref: priv ffff88002c6a8f40, add 1
[ 495.735544] gntdev_print_maps: maps list (priv ffff88002c6a8f40, usage
1/1024)
[ 495.735544] index 0, count 1 [new]
[ 495.757925] gntdev_mmap: map 0+1 at 7fc6fa16a000 (pgoff 0)
Aftermath, either xl/xm or any xen tool hang without any output. Still
dom0 seems to run 'almost' normaly. Any idea about this ?
diff --git a/vl.c b/vl.c
index 404d67a..e86d05d 100644
--- a/vl.c
+++ b/vl.c
@@ -5967,21 +5967,21 @@ int main(int argc, char **argv, char **envp)
/* just use the first displaystate for the moment */
ds = display_state;
/* terminal init */
-#ifdef CONFIG_STUBDOM
- if (xenfb_pv_display_init(ds) == 0) {
- } else
-#endif
if (nographic) {
if (curses) {
fprintf(stderr, "fatal: -nographic can't be used with -curses\n");
exit(1);
}
} else {
+#if defined(CONFIG_STUBDOM)
+ if (xenfb_pv_display_init(ds) == 0) {
+ } else
+#endif
#if defined(CONFIG_CURSES)
- if (curses) {
- /* At the moment curses cannot be used with other displays */
- curses_display_init(ds, full_screen);
- } else
+ if (curses) {
+ /* At the moment curses cannot be used with other displays */
+ curses_display_init(ds, full_screen);
+ } else
#endif
{
if (vnc_display != NULL || vncunused != 0) {
--
Eric Chanudet
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|