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

Re: [Xen-devel] no console when using xl toolstack xen 4.1.2



On Tue, 24 Apr 2012, Sam Mulvey wrote:
> On Apr 24, 2012, at 6:02 AM, Stefano Stabellini wrote:
> 
>       According to xenstore the console is connected for both domains and you
>       should be able to access them using /dev/pts/2 and /dev/pts/3.
>       The only issue I can see is that the disk for "finnix" is not
>       connected. Maybe an disk open error?
> 
> 
> Sure enough, you are right in both cases. Â Connecting to the pty with screen 
> gives me access to the console. ÂÂ

That means there is still a bug in xl or xenconsole because "xl console"
should work.


> domutest is an archlinux instance which is using a LVM partition appears to 
> work. Â The finnix domU is using an ISO file
> and it does not appear to find it on boot up and I can't force it to find it, 
> so running "xl create" doesn't work in that
> mode as well as I thought it had. Â Â Running it with xend/xm, it works fine
> 
> Anything I should be looking at next?

Is the file you are trying to open on NFS by any chance?
My guess is that the file open is failing, maybe because of an opening flag.
We need to add some tracing to xen_disk.c in qemu to find out.
Could you please apply the appended patch to the qemu tree and then post
the qemu log file again?

---


diff --git a/hw/xen_disk.c b/hw/xen_disk.c
index 6aebb77..5c4828d 100644
--- a/hw/xen_disk.c
+++ b/hw/xen_disk.c
@@ -584,6 +584,7 @@ static int blk_init(struct XenDevice *xendev)
     int mode, qflags, have_barriers, info = 0;
     char *h = NULL;
 
+    printf("DEBUG %s %d\n",__func__,__LINE__);
     /* read xenstore entries */
     if (blkdev->params == NULL) {
        blkdev->params = xenstore_read_be_str(&blkdev->xendev, "params");
@@ -598,6 +599,7 @@ static int blk_init(struct XenDevice *xendev)
            blkdev->filename  = blkdev->params;
        }
     }
+    printf("DEBUG %s %d filename=%s\n",__func__,__LINE__,blkdev->filename);
     if (!strcmp("aio", blkdev->fileproto))
         blkdev->fileproto = "raw";
     if (blkdev->mode == NULL)
@@ -608,6 +610,7 @@ static int blk_init(struct XenDevice *xendev)
        blkdev->dev = xenstore_read_be_str(&blkdev->xendev, "dev");
     if (blkdev->devtype == NULL)
        blkdev->devtype = xenstore_read_be_str(&blkdev->xendev, "device-type");
+    printf("DEBUG %s %d protocol=%s\n",__func__,__LINE__,blkdev->fileproto);
 
     /* do we have all we need? */
     if (blkdev->params == NULL ||
@@ -616,6 +619,7 @@ static int blk_init(struct XenDevice *xendev)
        blkdev->dev == NULL)
        return -1;
 
+    printf("DEBUG %s %d\n",__func__,__LINE__);
     /* read-only ? */
     if (strcmp(blkdev->mode, "w") == 0) {
        mode   = O_RDWR;
@@ -630,6 +634,7 @@ static int blk_init(struct XenDevice *xendev)
     if (blkdev->devtype && !strcmp(blkdev->devtype, "cdrom"))
        info  |= VDISK_CDROM;
 
+    printf("DEBUG %s %d\n",__func__,__LINE__);
     /* init qemu block driver */
     blkdev->index = (blkdev->xendev.dev - 202 * 256) / 16;
     blkdev->index = drive_get_index(IF_XEN, 0, blkdev->index);
@@ -640,6 +645,7 @@ static int blk_init(struct XenDevice *xendev)
        if (blkdev->bs) {
            if (bdrv_open2(blkdev->bs, blkdev->filename, qflags,
                            bdrv_find_format(blkdev->fileproto)) != 0) {
+                printf("DEBUG %s %d errno=%d\n",__func__,__LINE__,errno);
                bdrv_delete(blkdev->bs);
                blkdev->bs = NULL;
            }
@@ -651,6 +657,7 @@ static int blk_init(struct XenDevice *xendev)
         xen_be_printf(&blkdev->xendev, 2, "get configured bdrv (cmdline 
setup)\n");
        blkdev->bs = drives_table[blkdev->index].bdrv;
     }
+    printf("DEBUG %s %d\n",__func__,__LINE__);
     blkdev->file_blk  = BLOCK_SIZE;
     blkdev->file_size = bdrv_getlength(blkdev->bs);
     if (blkdev->file_size < 0) {
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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