[Qemu-devel] [PATCH v2 for 4.1 0/2] avoid lseek on block_status

Vladimir Sementsov-Ogievskiy posted 2 patches 5 years ago
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test checkpatch passed
Test asan passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190408162617.258535-1-vsementsov@virtuozzo.com
Maintainers: Kevin Wolf <kwolf@redhat.com>, Fam Zheng <fam@euphon.net>, Stefan Hajnoczi <stefanha@redhat.com>, Max Reitz <mreitz@redhat.com>
block/qcow2.h                              |  4 ++
include/block/block.h                      |  8 ++-
block/io.c                                 |  9 ++-
block/qcow2-refcount.c                     | 32 ++++++++++
block/qcow2.c                              | 11 ++++
tests/perf/block/qcow2/convert-blockstatus | 71 ++++++++++++++++++++++
tests/qemu-iotests/102                     |  2 +-
tests/qemu-iotests/102.out                 |  3 +-
tests/qemu-iotests/141.out                 |  2 +-
tests/qemu-iotests/144.out                 |  2 +-
10 files changed, 138 insertions(+), 6 deletions(-)
create mode 100755 tests/perf/block/qcow2/convert-blockstatus
[Qemu-devel] [PATCH v2 for 4.1 0/2] avoid lseek on block_status
Posted by Vladimir Sementsov-Ogievskiy 5 years ago
Hi!

It's a continuation for
"[PATCH] qcow2: avoid lseek on block_status if possible"
https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg06598.html

performance results for block-status on tmpfs [tests originally by Kevin,
now they are in 01]:

./tests/perf/block/qcow2/convert-blockstatus /ramdisk/x

after 01:

plain: 81.77
forward: 82.61
prealloc: 0.01

after 02:

plain: 0.12
forward: 0.12
prealloc: 0.01

v2:
 01: new
 02: [mostly by Kevin's comments]
     - rewritten to go through new flag BDRV_BLOCK_RECURSE
     - never retry detection if failed for first time
     - rewrite detection to do less iterations and to be more simple

     iotests 102 behavior changed [and not sure about other two ones
     in comparison with v1, but it seems it doesn't matter]

     also, patch subject changed, as now it's a generic change for
     block layer


Vladimir Sementsov-Ogievskiy (2):
  tests/perf: Test lseek influence on qcow2 block-status
  block: avoid recursive block_status call if possible

 block/qcow2.h                              |  4 ++
 include/block/block.h                      |  8 ++-
 block/io.c                                 |  9 ++-
 block/qcow2-refcount.c                     | 32 ++++++++++
 block/qcow2.c                              | 11 ++++
 tests/perf/block/qcow2/convert-blockstatus | 71 ++++++++++++++++++++++
 tests/qemu-iotests/102                     |  2 +-
 tests/qemu-iotests/102.out                 |  3 +-
 tests/qemu-iotests/141.out                 |  2 +-
 tests/qemu-iotests/144.out                 |  2 +-
 10 files changed, 138 insertions(+), 6 deletions(-)
 create mode 100755 tests/perf/block/qcow2/convert-blockstatus

-- 
2.18.0


Re: [Qemu-devel] [PATCH v2 for 4.1 0/2] avoid lseek on block_status
Posted by Vladimir Sementsov-Ogievskiy 4 years, 11 months ago
ping2

Hi!

My approach of adding perf test disliked by Max in other thread, so
01 may be just skipped.

What about 02?

08.04.2019 19:26, Vladimir Sementsov-Ogievskiy wrote:
> Hi!
> 
> It's a continuation for
> "[PATCH] qcow2: avoid lseek on block_status if possible"
> https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg06598.html
> 
> performance results for block-status on tmpfs [tests originally by Kevin,
> now they are in 01]:
> 
> ./tests/perf/block/qcow2/convert-blockstatus /ramdisk/x
> 
> after 01:
> 
> plain: 81.77
> forward: 82.61
> prealloc: 0.01
> 
> after 02:
> 
> plain: 0.12
> forward: 0.12
> prealloc: 0.01
> 
> v2:
>   01: new
>   02: [mostly by Kevin's comments]
>       - rewritten to go through new flag BDRV_BLOCK_RECURSE
>       - never retry detection if failed for first time
>       - rewrite detection to do less iterations and to be more simple
> 
>       iotests 102 behavior changed [and not sure about other two ones
>       in comparison with v1, but it seems it doesn't matter]
> 
>       also, patch subject changed, as now it's a generic change for
>       block layer
> 
> 
> Vladimir Sementsov-Ogievskiy (2):
>    tests/perf: Test lseek influence on qcow2 block-status
>    block: avoid recursive block_status call if possible
> 
>   block/qcow2.h                              |  4 ++
>   include/block/block.h                      |  8 ++-
>   block/io.c                                 |  9 ++-
>   block/qcow2-refcount.c                     | 32 ++++++++++
>   block/qcow2.c                              | 11 ++++
>   tests/perf/block/qcow2/convert-blockstatus | 71 ++++++++++++++++++++++
>   tests/qemu-iotests/102                     |  2 +-
>   tests/qemu-iotests/102.out                 |  3 +-
>   tests/qemu-iotests/141.out                 |  2 +-
>   tests/qemu-iotests/144.out                 |  2 +-
>   10 files changed, 138 insertions(+), 6 deletions(-)
>   create mode 100755 tests/perf/block/qcow2/convert-blockstatus
> 


-- 
Best regards,
Vladimir
Re: [Qemu-devel] [PATCH v2 for 4.1 0/2] avoid lseek on block_status
Posted by Kevin Wolf 4 years, 11 months ago
Am 08.04.2019 um 18:26 hat Vladimir Sementsov-Ogievskiy geschrieben:
> Hi!
> 
> It's a continuation for
> "[PATCH] qcow2: avoid lseek on block_status if possible"
> https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg06598.html
> 
> performance results for block-status on tmpfs [tests originally by Kevin,
> now they are in 01]:
> 
> ./tests/perf/block/qcow2/convert-blockstatus /ramdisk/x
> 
> after 01:
> 
> plain: 81.77
> forward: 82.61
> prealloc: 0.01
> 
> after 02:
> 
> plain: 0.12
> forward: 0.12
> prealloc: 0.01

Thanks, applied to the block branch.

Kevin

Re: [Qemu-devel] [PATCH v2 for 4.1 0/2] avoid lseek on block_status
Posted by Vladimir Sementsov-Ogievskiy 4 years, 11 months ago
22.05.2019 13:47, Kevin Wolf wrote:
> Am 08.04.2019 um 18:26 hat Vladimir Sementsov-Ogievskiy geschrieben:
>> Hi!
>>
>> It's a continuation for
>> "[PATCH] qcow2: avoid lseek on block_status if possible"
>> https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg06598.html
>>
>> performance results for block-status on tmpfs [tests originally by Kevin,
>> now they are in 01]:
>>
>> ./tests/perf/block/qcow2/convert-blockstatus /ramdisk/x
>>
>> after 01:
>>
>> plain: 81.77
>> forward: 82.61
>> prealloc: 0.01
>>
>> after 02:
>>
>> plain: 0.12
>> forward: 0.12
>> prealloc: 0.01
> 
> Thanks, applied to the block branch.
> 
> Kevin
> 

Thank you!

-- 
Best regards,
Vladimir
Re: [Qemu-devel] [PATCH v2 for 4.1 0/2] avoid lseek on block_status
Posted by Vladimir Sementsov-Ogievskiy 5 years ago
ping

08.04.2019 19:26, Vladimir Sementsov-Ogievskiy wrote:
> Hi!
> 
> It's a continuation for
> "[PATCH] qcow2: avoid lseek on block_status if possible"
> https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg06598.html
> 
> performance results for block-status on tmpfs [tests originally by Kevin,
> now they are in 01]:
> 
> ./tests/perf/block/qcow2/convert-blockstatus /ramdisk/x
> 
> after 01:
> 
> plain: 81.77
> forward: 82.61
> prealloc: 0.01
> 
> after 02:
> 
> plain: 0.12
> forward: 0.12
> prealloc: 0.01
> 
> v2:
>   01: new
>   02: [mostly by Kevin's comments]
>       - rewritten to go through new flag BDRV_BLOCK_RECURSE
>       - never retry detection if failed for first time
>       - rewrite detection to do less iterations and to be more simple
> 
>       iotests 102 behavior changed [and not sure about other two ones
>       in comparison with v1, but it seems it doesn't matter]
> 
>       also, patch subject changed, as now it's a generic change for
>       block layer
> 
> 
> Vladimir Sementsov-Ogievskiy (2):
>    tests/perf: Test lseek influence on qcow2 block-status
>    block: avoid recursive block_status call if possible
> 
>   block/qcow2.h                              |  4 ++
>   include/block/block.h                      |  8 ++-
>   block/io.c                                 |  9 ++-
>   block/qcow2-refcount.c                     | 32 ++++++++++
>   block/qcow2.c                              | 11 ++++
>   tests/perf/block/qcow2/convert-blockstatus | 71 ++++++++++++++++++++++
>   tests/qemu-iotests/102                     |  2 +-
>   tests/qemu-iotests/102.out                 |  3 +-
>   tests/qemu-iotests/141.out                 |  2 +-
>   tests/qemu-iotests/144.out                 |  2 +-
>   10 files changed, 138 insertions(+), 6 deletions(-)
>   create mode 100755 tests/perf/block/qcow2/convert-blockstatus
> 


-- 
Best regards,
Vladimir
[Qemu-devel] ping Re: [PATCH v2 for 4.1 0/2] avoid lseek on block_status
Posted by Vladimir Sementsov-Ogievskiy 4 years, 11 months ago
ping

08.04.2019 19:26, Vladimir Sementsov-Ogievskiy wrote:
> Hi!
> 
> It's a continuation for
> "[PATCH] qcow2: avoid lseek on block_status if possible"
> https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg06598.html
> 
> performance results for block-status on tmpfs [tests originally by Kevin,
> now they are in 01]:
> 
> ./tests/perf/block/qcow2/convert-blockstatus /ramdisk/x
> 
> after 01:
> 
> plain: 81.77
> forward: 82.61
> prealloc: 0.01
> 
> after 02:
> 
> plain: 0.12
> forward: 0.12
> prealloc: 0.01
> 
> v2:
>   01: new
>   02: [mostly by Kevin's comments]
>       - rewritten to go through new flag BDRV_BLOCK_RECURSE
>       - never retry detection if failed for first time
>       - rewrite detection to do less iterations and to be more simple
> 
>       iotests 102 behavior changed [and not sure about other two ones
>       in comparison with v1, but it seems it doesn't matter]
> 
>       also, patch subject changed, as now it's a generic change for
>       block layer
> 
> 
> Vladimir Sementsov-Ogievskiy (2):
>    tests/perf: Test lseek influence on qcow2 block-status
>    block: avoid recursive block_status call if possible
> 
>   block/qcow2.h                              |  4 ++
>   include/block/block.h                      |  8 ++-
>   block/io.c                                 |  9 ++-
>   block/qcow2-refcount.c                     | 32 ++++++++++
>   block/qcow2.c                              | 11 ++++
>   tests/perf/block/qcow2/convert-blockstatus | 71 ++++++++++++++++++++++
>   tests/qemu-iotests/102                     |  2 +-
>   tests/qemu-iotests/102.out                 |  3 +-
>   tests/qemu-iotests/141.out                 |  2 +-
>   tests/qemu-iotests/144.out                 |  2 +-
>   10 files changed, 138 insertions(+), 6 deletions(-)
>   create mode 100755 tests/perf/block/qcow2/convert-blockstatus
> 


-- 
Best regards,
Vladimir