xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* Re: Re: [PATCH] libxl: virtio-blk-pci support for FV domain
@ 2011-05-10  2:26 Takeshi HASEGAWA
  2011-05-10 12:57 ` Wei Liu
  0 siblings, 1 reply; 5+ messages in thread
From: Takeshi HASEGAWA @ 2011-05-10  2:26 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: Anthony Perard, Xen Devel, Ian Jackson, Wei Liu


[-- Attachment #1.1: Type: text/plain, Size: 3137 bytes --]

Thanks for the suggestions, Stefano's looks ideal and finally
it should be.

I think the change is not so urgent and afford to revise, at least while
virtio ring is not working due to the issue I posted separately.

Thanks,
Takeshi

2011/5/9 Stefano Stabellini <stefano.stabellini@eu.citrix.com>:
> On Sun, 8 May 2011, Takeshi HASEGAWA wrote:
>> My patch threats virtio block devices with same manner with xvd, sd, and
hd.
>> Though, I need to discuss with xen developpers whether the vbd number
>> assignment is reasonable or not.
>>
>> I guess blktap and blkback will never handle virto block device, so
assigning
>> (reserving) the whole range of 2 << 28 for virtio block vbd may be more
better.
>>
>> Actually virtio is not Xen's VBD, so vbd number is not mandatory to work.
>> However, I believe this approach makes virtio block manageable
>> in same way as xvd and others.
>>
>
> Like you say virtio is not a Xen VBD protocol so I don't think we should
> add a new Xen VBD encoding.
> After all we don't want any Xen VBD setup for a given virtio disk.
>
> The user should be able to specify a virtio disk using the following
> syntax:
>
> disk = ['file:/path/to/file.raw,vd0,w']
>
> xl should parse the syntax and allocate the corresponding
> libxl_device_disk struct, with vdev = "vd0".
> The problem is that we need to specify a disk backend and none of the
> existing disk backends are appropriate, because they are Xen VBD disk
> backends while this is a completely different backend altogether.
> So I would add a new libxl_disk_backend called "NONE" that means "No Xen
> VBD disk backend".
> So we have a libxl_device_disk with vdev = "vd0" and backend = NONE.
> Eventually libxl_device_disk_add gets called with that libxl_device_disk
> as parameter; validate_virtual_disk should correctly validate the disk.
> After that libxl_device_disk_add calls libxl__device_disk_dev_number
> that translates the vdev into a Xen VBD devid: in this case
> libxl__device_disk_dev_number should return a new error that means "No
> Xen VBD for this device". libxl_device_disk_add should catch the error
> and return because there is nothing to do.
>
>
> At this point there are still two problems to solve:
>
> - how to handle disk hotplug
> we need to add QMP support to libxl so that libxl_device_disk_add can
> use it to ask qemu to dynamically allocate a new virtio disk;
>
> - how to handle virtio for pure PV guests
> in this case virtio is going to be setup through xenstore so we actually
> need to write something there. But the virtio-on-xenstore protocol
> doesn't exist yet so we don't really know what is going to be written
> there and by whom.
>
>
> This is what I would do today to add virtio-blk support to libxl,
> however IanJ intends to rewrite the disk handling API in libxl so
> something might end up to be very different.
> Ian, do you have any comments on this?
> Considering that I wouldn't want to stall the virtio-blk on xen work and
> that the patch will be rather small anyway, would you be OK with
> accepting a virtio-blk patch for libxl before your refactoring?
>

-- 
Takeshi HASEGAWA <hasegaw@gmail.com>

[-- Attachment #1.2: Type: text/html, Size: 3848 bytes --]

[-- Attachment #2: Type: text/plain, Size: 138 bytes --]

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

^ permalink raw reply	[flat|nested] 5+ messages in thread
* [PATCH] libxl: virtio-blk-pci support for FV domain
@ 2011-05-08  3:48 Takeshi HASEGAWA
  2011-05-08  4:56 ` Wei Liu
  0 siblings, 1 reply; 5+ messages in thread
From: Takeshi HASEGAWA @ 2011-05-08  3:48 UTC (permalink / raw)
  To: Xen Devel; +Cc: Anthony PERARD, Stefano Stabellini, Wei Liu

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@gmail.com>

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@gmail.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-05-10 14:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-10  2:26 Re: [PATCH] libxl: virtio-blk-pci support for FV domain Takeshi HASEGAWA
2011-05-10 12:57 ` Wei Liu
2011-05-10 14:28   ` Stefano Stabellini
  -- strict thread matches above, loose matches on Subject: below --
2011-05-08  3:48 Takeshi HASEGAWA
2011-05-08  4:56 ` Wei Liu
2011-05-08  5:24   ` Wei Liu
2011-05-08 11:26     ` Takeshi HASEGAWA
2011-05-09  9:04       ` Ian Campbell
2011-05-09 14:44       ` Stefano Stabellini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).