From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:37236) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SP8gK-0003ZP-7s for qemu-devel@nongnu.org; Tue, 01 May 2012 04:43:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SP8gF-00014D-7P for qemu-devel@nongnu.org; Tue, 01 May 2012 04:43:35 -0400 Received: from isrv.corpit.ru ([86.62.121.231]:49619) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SP8gE-000144-Vw for qemu-devel@nongnu.org; Tue, 01 May 2012 04:43:31 -0400 Message-ID: <4F9FA22E.5050309@msgid.tls.msk.ru> Date: Tue, 01 May 2012 12:43:26 +0400 From: Michael Tokarev MIME-Version: 1.0 References: <1335801160-321-1-git-send-email-mjt@msgid.tls.msk.ru> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] increase BlockConf.min_io_size type from uint16_t to uint32_t List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: Kevin Wolf , qemu-devel@nongnu.org, Anthony Liguori On 01.05.2012 12:27, Stefan Hajnoczi wrote: > On Mon, Apr 30, 2012 at 4:52 PM, Michael Tokarev 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 >> --- >> 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 Thanks, /mjt