[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 25/27] block/parallels: add prealloc-mode and pr
From: |
Roman Kagan |
Subject: |
Re: [Qemu-devel] [PATCH 25/27] block/parallels: add prealloc-mode and prealloc-size open paramemets |
Date: |
Wed, 29 Apr 2015 14:20:03 +0300 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Tue, Apr 28, 2015 at 01:59:56PM +0300, Roman Kagan wrote:
> On Tue, Apr 28, 2015 at 10:46:58AM +0300, Denis V. Lunev wrote:
> > This is preparational commit for tweaks in Parallels image expansion.
> > The idea is that enlarge via truncate by one data block is slow. It
> > would be much better to use fallocate via bdrv_write_zeroes and
> > expand by some significant amount at once.
> >
> > Original idea with sequential file writing to the end of the file without
> > fallocate/truncate would be slower than this approach if the image is
> > expanded with several operations:
> > - each image expanding means file metadata update, i.e. filesystem
> > journal write. Truncate/write to newly truncated space update file
> > metadata twice thus truncate removal helps. With fallocate call
> > inside bdrv_write_zeroes file metadata is updated only once and
> > this should happen infrequently thus this approach is the best one
> > for the image expansion
> > - tail writes are ordered, i.e. the guest IO queue could not be sent
> > immediately to the host introducing additional IO delays
> >
> > This patch just adds proper parameters into BDRVParallelsState and
> > performs options parsing in parallels_open.
> >
> > Signed-off-by: Denis V. Lunev <address@hidden>
> > CC: Roman Kagan <address@hidden>
> > CC: Kevin Wolf <address@hidden>
> > CC: Stefan Hajnoczi <address@hidden>
> > ---
> > block/parallels.c | 83
> > +++++++++++++++++++++++++++++++++++++++++++++++++++----
> > 1 file changed, 77 insertions(+), 6 deletions(-)
>
> It may be slightly more logical to leave truncate support out of patch
> 09 sticking with bdrv_write_zeros there, and introduce it all in this
> patch.
>
> Otherwise looks good to me.
I mean,
Reviewed-by: Roman Kagan <address@hidden>
Roman.
- [Qemu-devel] [PATCH 17/27] block/parallels: read parallels image header and BAT into single buffer, (continued)
- [Qemu-devel] [PATCH 17/27] block/parallels: read parallels image header and BAT into single buffer, Denis V. Lunev, 2015/04/28
- [Qemu-devel] [PATCH 18/27] block/parallels: move parallels_open/probe to the very end of the file, Denis V. Lunev, 2015/04/28
- [Qemu-devel] [PATCH 19/27] block/parallels: implement parallels_check method of block driver, Denis V. Lunev, 2015/04/28
- [Qemu-devel] [PATCH 20/27] block/parallels: implement incorrect close detection, Denis V. Lunev, 2015/04/28
- [Qemu-devel] [PATCH 22/27] block/parallels: improve image reading performance, Denis V. Lunev, 2015/04/28
- [Qemu-devel] [PATCH 21/27] iotests, parallels: check for incorrectly closed image in tests, Denis V. Lunev, 2015/04/28
- [Qemu-devel] [PATCH 23/27] block/parallels: create bat_entry_off helper, Denis V. Lunev, 2015/04/28
- [Qemu-devel] [PATCH 24/27] block/parallels: delay writing to BAT till bdrv_co_flush_to_os, Denis V. Lunev, 2015/04/28
- [Qemu-devel] [PATCH 25/27] block/parallels: add prealloc-mode and prealloc-size open paramemets, Denis V. Lunev, 2015/04/28
- [Qemu-devel] [PATCH 26/27] block/parallels: optimize linear image expansion, Denis V. Lunev, 2015/04/28
- [Qemu-devel] [PATCH 27/27] block/parallels: improve image writing performance further, Denis V. Lunev, 2015/04/28