[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] libxl: virtio-blk-pci support for FV domain
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> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |