[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/7] raw-posix: add raw_get_aio_fd() for virtio-
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH 1/7] raw-posix: add raw_get_aio_fd() for virtio-blk-data-plane |
Date: |
Fri, 16 Nov 2012 07:15:09 +0100 |
On Thu, Nov 15, 2012 at 9:03 PM, Anthony Liguori <address@hidden> wrote:
> Stefan Hajnoczi <address@hidden> writes:
>
>> The raw_get_aio_fd() function allows virtio-blk-data-plane to get the
>> file descriptor of a raw image file with Linux AIO enabled. This
>> interface is really a layering violation that can be resolved once the
>> block layer is able to run outside the global mutex - at that point
>> virtio-blk-data-plane will switch from custom Linux AIO code to using
>> the block layer.
>>
>> Signed-off-by: Stefan Hajnoczi <address@hidden>
>
> I think this creates user confusion because virtio-blk-data-plane can't
> actually take a BDS.
>
> So why not just make a string 'filename' property and open it directly
> in virtio-blk-data-plane? Then it's at least clear to the user and
> management tools what the device is capable of doing.
There are some benefits to raw_get_aio_fd():
1. virtio-blk-data-plane is only a subset virtio-blk implementation,
it still needs a regular virtio-blk-pci device (with BDS) in order to
run. If we use a filename the user would have to specify it twice.
2. Fetching the file descriptor in this way ensures that the image
file is format=raw.
3. virtio-blk-data-plane uses Linux AIO and raw-posix.c has checks
which I don't want to duplicate - we can simply check s->use_aio in
raw_get_aio_fd() to confirm that Linux AIO can be used.
If we open a file directly then we lose these benefits. Do you still
think we should open a filename?
Stefan