[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] increase BlockConf.min_io_size type from uint16
From: |
Michael Tokarev |
Subject: |
Re: [Qemu-devel] [PATCH] increase BlockConf.min_io_size type from uint16_t to uint32_t |
Date: |
Tue, 01 May 2012 12:43:26 +0400 |
User-agent: |
Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.3) Gecko/20120329 Icedove/10.0.3 |
On 01.05.2012 12:27, Stefan Hajnoczi wrote:
> On Mon, Apr 30, 2012 at 4:52 PM, Michael Tokarev <address@hidden> wrote:
>> This value is used currently for virtio-blk only. It was defined
>> as uint16_t before, which is the same as in kernel<=>user interface
>> (in virtio_blk.h, struct virtio_blk_config). But the problem is
>> that in kernel<=>user interface the units are sectors (which is
>> usually 512 bytes or more), while in qemu it is in bytes. However,
>> for, say, md raid5 arrays, it is typical to have actual min_io_size
>> of a host device to be large. For example, for raid5 device of
>> 3 drives with 64Kb chunk size, that value will be 128Kb, which does
>> not fit in a uint16_t anymore.
>>
>> Increase the value size from 16bits to 32bits for now.
>>
>> But apparently, the kernel<=>user interface needs to be fixed too
>> (while it is much more difficult due to compatibility issues),
>> because even with 512byte units, the 16bit value there will overflow
>> too with quite normal MD RAID configuration.
>>
>> Signed-off-by: Michael Tokarev <address@hidden>
>> ---
>> block.h | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Which kernel<=>user interface?
struct virtio_blk_config in virtio_blk.h, which is used to
pass information about block device from (qemu) userspace
to guest kernel.
Besides, it appears that at least minimum_io_size is not used
anywhere in the kernel, -- so, for example, filesystems does
not directly benefit from seeing this information. But mkfs.xfs
do use it.
> Reviewed-by: Stefan Hajnoczi <address@hidden>
Thanks,
/mjt