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] Re: [PATCH] libxl: virtio-blk-pci support for FV domain

To: Takeshi HASEGAWA <hasegaw@xxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH] libxl: virtio-blk-pci support for FV domain
From: Wei Liu <liuw@xxxxxxxxx>
Date: Sun, 8 May 2011 12:56:56 +0800
Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>, Xen Devel <Xen-devel@xxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Delivery-date: Sat, 07 May 2011 21:58:50 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <BANLkTin2+FtCL4-L1ZsZUov2153HiXSq7w@xxxxxxxxxxxxxx>
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>
References: <BANLkTin2+FtCL4-L1ZsZUov2153HiXSq7w@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Sun, May 8, 2011 at 11:48 AM, Takeshi HASEGAWA <hasegaw@xxxxxxxxx> wrote:
> I am working to support virtio-blk-pci device on Xen FV domain.
> This patch adds virtio-blk-pci support to libxl.
>
> New vbd type (252 << 8) is added.
> I borrow 252 from major number of linux virtio-blk frontend (vd).
> virtio-blk-pci does not use this type right now, but it should
> also work with Wei Liu's work.
>
>
> I have already seen virtio device on HVM domain with upstream-qemu,
> but there looks some issues when I/O occurs.
> (fdisk works, but qemu dies during mkfs)
> I am going to look into the problem.
>
> Any suggestions are welcome!
>
> Thanks,
> Takeshi
>
>
> Signed-off-by: Takeshi HASEGAWA <hasegaw@xxxxxxxxx>
>
> diff -r 4b0692880dfa docs/misc/vbd-interface.txt
> --- a/docs/misc/vbd-interface.txt       Thu May 05 17:40:34 2011 +0100
> +++ b/docs/misc/vbd-interface.txt       Sun May 08 12:46:00 2011 +0900
> @@ -73,6 +73,7 @@
>
>     1 << 28 | disk << 8 | partition      xvd, disks or partitions 16 onwards
>    202 << 8 | disk << 4 | partition      xvd, disks and partitions up to 15
> +   252 << 8 | disk << 4 | partition      vd, disks and partitions up to 15
>      8 << 8 | disk << 4 | partition      sd, disks and partitions up to 15
>      3 << 8 | disk << 6 | partition      hd, disks 0..1, partitions 0..63
>     22 << 8 | (disk-2) << 6 | partition  hd, disks 2..3, partitions 0..63
> diff -r 4b0692880dfa tools/libxl/libxl_device.c
> --- a/tools/libxl/libxl_device.c        Thu May 05 17:40:34 2011 +0100
> +++ b/tools/libxl/libxl_device.c        Sun May 08 12:46:00 2011 +0900
> @@ -238,6 +238,13 @@
>         if (pdisk) *pdisk = disk;
>         if (ppartition) *ppartition = partition;
>         return (8 << 8) | (disk << 4) | partition;
> +    }
> +    if (device_virtdisk_matches(virtpath, "vd",
> +                                &disk, 15,
> +                                &partition, 15)) {
> +        if (pdisk) *pdisk = disk;
> +        if (ppartition) *ppartition = partition;
> +        return (252 << 8) | (disk << 4) | partition;
>     }
>     return -1;
>  }
> diff -r 4b0692880dfa tools/libxl/libxl_dm.c
> --- a/tools/libxl/libxl_dm.c    Thu May 05 17:40:34 2011 +0100
> +++ b/tools/libxl/libxl_dm.c    Sun May 08 12:46:00 2011 +0900
> @@ -418,6 +418,10 @@
>                 if (strncmp(disks[i].vdev, "sd", 2) == 0)
>                     drive = libxl__sprintf
>                         (gc, "file=%s,if=scsi,bus=0,unit=%d,format=%s",
> +                         disks[i].pdev_path, disk, format);
> +                else if (strncmp(disks[i].vdev, "vd", 2) == 0)
> +                    drive = libxl__sprintf
> +                        (gc, "file=%s,if=virtio,bus=0,unit=%d,format=%s",
>                          disks[i].pdev_path, disk, format);
>                 else if (disk < 4)
>                     drive = libxl__sprintf
>
> --
> Takeshi HASEGAWA <hasegaw@xxxxxxxxx>
>

Thanks, I just started working on VirtIO block support yesterday.

I was trying to add support to parse_disk_config() so that we can
specify "-if" option in the config file.

I'm wondering which approach is better -- configure through
device_virtdisk_matches() or parse_disk_config() .

Any suggestions?

-- 
Best regards
Wei Liu
Twitter: @iliuw
Site: http://liuw.name

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel