mbox series

[0/6] qemu-img: rebase: add compression support

Message ID 20230601192836.598602-1-andrey.drobyshev@virtuozzo.com (mailing list archive)
Headers show
Series qemu-img: rebase: add compression support | expand

Message

Andrey Drobyshev June 1, 2023, 7:28 p.m. UTC
This series is adding [-c | --compress] option to "qemu-img rebase"
command, which might prove useful for saving some disk space when, for
instance, manipulating chains of backup images.  Along the way I had to
make a couple of minor improvements.

The first 2 patches are a bug fix + corresponding test case.
Patch 3 merely fixes wrong args used in allocation.
Patch 4 makes write requests during rebase operation cluster_size-aligned,
which seems to be beneficial for both non-compressed and compressed mode.
The last 2 patches are the actual feature implementation + tests.

Andrey Drobyshev (6):
  qemu-img: rebase: stop when reaching EOF of old backing file
  qemu-iotests: 024: add rebasing test case for overlay_size >
    backing_size
  qemu-img: rebase: use backing files' BlockBackend for buffer alignment
  qemu-img: rebase: avoid unnecessary COW operations
  qemu-img: add compression option to rebase subcommand
  iotests: add test 314 for "qemu-img rebase" with compression

 docs/tools/qemu-img.rst    |   6 +-
 qemu-img-cmds.hx           |   4 +-
 qemu-img.c                 | 106 ++++++++++++++++++------
 tests/qemu-iotests/024     |  57 +++++++++++++
 tests/qemu-iotests/024.out |  30 +++++++
 tests/qemu-iotests/314     | 165 +++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/314.out |  75 +++++++++++++++++
 7 files changed, 415 insertions(+), 28 deletions(-)
 create mode 100755 tests/qemu-iotests/314
 create mode 100644 tests/qemu-iotests/314.out

Comments

Denis V. Lunev June 30, 2023, 10:54 a.m. UTC | #1
On 6/1/23 21:28, Andrey Drobyshev wrote:
> This series is adding [-c | --compress] option to "qemu-img rebase"
> command, which might prove useful for saving some disk space when, for
> instance, manipulating chains of backup images.  Along the way I had to
> make a couple of minor improvements.
>
> The first 2 patches are a bug fix + corresponding test case.
> Patch 3 merely fixes wrong args used in allocation.
> Patch 4 makes write requests during rebase operation cluster_size-aligned,
> which seems to be beneficial for both non-compressed and compressed mode.
> The last 2 patches are the actual feature implementation + tests.
>
> Andrey Drobyshev (6):
>    qemu-img: rebase: stop when reaching EOF of old backing file
>    qemu-iotests: 024: add rebasing test case for overlay_size >
>      backing_size
>    qemu-img: rebase: use backing files' BlockBackend for buffer alignment
>    qemu-img: rebase: avoid unnecessary COW operations
>    qemu-img: add compression option to rebase subcommand
>    iotests: add test 314 for "qemu-img rebase" with compression
>
>   docs/tools/qemu-img.rst    |   6 +-
>   qemu-img-cmds.hx           |   4 +-
>   qemu-img.c                 | 106 ++++++++++++++++++------
>   tests/qemu-iotests/024     |  57 +++++++++++++
>   tests/qemu-iotests/024.out |  30 +++++++
>   tests/qemu-iotests/314     | 165 +++++++++++++++++++++++++++++++++++++
>   tests/qemu-iotests/314.out |  75 +++++++++++++++++
>   7 files changed, 415 insertions(+), 28 deletions(-)
>   create mode 100755 tests/qemu-iotests/314
>   create mode 100644 tests/qemu-iotests/314.out
>
ping
Andrey Drobyshev July 7, 2023, 11:33 a.m. UTC | #2
On 6/30/23 13:54, Denis V. Lunev wrote:
> On 6/1/23 21:28, Andrey Drobyshev wrote:
>> This series is adding [-c | --compress] option to "qemu-img rebase"
>> command, which might prove useful for saving some disk space when, for
>> instance, manipulating chains of backup images.  Along the way I had to
>> make a couple of minor improvements.
>>
>> The first 2 patches are a bug fix + corresponding test case.
>> Patch 3 merely fixes wrong args used in allocation.
>> Patch 4 makes write requests during rebase operation
>> cluster_size-aligned,
>> which seems to be beneficial for both non-compressed and compressed mode.
>> The last 2 patches are the actual feature implementation + tests.
>>
>> Andrey Drobyshev (6):
>>    qemu-img: rebase: stop when reaching EOF of old backing file
>>    qemu-iotests: 024: add rebasing test case for overlay_size >
>>      backing_size
>>    qemu-img: rebase: use backing files' BlockBackend for buffer alignment
>>    qemu-img: rebase: avoid unnecessary COW operations
>>    qemu-img: add compression option to rebase subcommand
>>    iotests: add test 314 for "qemu-img rebase" with compression
>>
>>   docs/tools/qemu-img.rst    |   6 +-
>>   qemu-img-cmds.hx           |   4 +-
>>   qemu-img.c                 | 106 ++++++++++++++++++------
>>   tests/qemu-iotests/024     |  57 +++++++++++++
>>   tests/qemu-iotests/024.out |  30 +++++++
>>   tests/qemu-iotests/314     | 165 +++++++++++++++++++++++++++++++++++++
>>   tests/qemu-iotests/314.out |  75 +++++++++++++++++
>>   7 files changed, 415 insertions(+), 28 deletions(-)
>>   create mode 100755 tests/qemu-iotests/314
>>   create mode 100644 tests/qemu-iotests/314.out
>>
> ping

Friendly ping
Andrey Drobyshev July 24, 2023, 1:11 p.m. UTC | #3
On 6/30/23 13:54, Denis V. Lunev wrote:
> On 6/1/23 21:28, Andrey Drobyshev wrote:
>> This series is adding [-c | --compress] option to "qemu-img rebase"
>> command, which might prove useful for saving some disk space when, for
>> instance, manipulating chains of backup images.  Along the way I had to
>> make a couple of minor improvements.
>>
>> The first 2 patches are a bug fix + corresponding test case.
>> Patch 3 merely fixes wrong args used in allocation.
>> Patch 4 makes write requests during rebase operation
>> cluster_size-aligned,
>> which seems to be beneficial for both non-compressed and compressed mode.
>> The last 2 patches are the actual feature implementation + tests.
>>
>> Andrey Drobyshev (6):
>>    qemu-img: rebase: stop when reaching EOF of old backing file
>>    qemu-iotests: 024: add rebasing test case for overlay_size >
>>      backing_size
>>    qemu-img: rebase: use backing files' BlockBackend for buffer alignment
>>    qemu-img: rebase: avoid unnecessary COW operations
>>    qemu-img: add compression option to rebase subcommand
>>    iotests: add test 314 for "qemu-img rebase" with compression
>>
>>   docs/tools/qemu-img.rst    |   6 +-
>>   qemu-img-cmds.hx           |   4 +-
>>   qemu-img.c                 | 106 ++++++++++++++++++------
>>   tests/qemu-iotests/024     |  57 +++++++++++++
>>   tests/qemu-iotests/024.out |  30 +++++++
>>   tests/qemu-iotests/314     | 165 +++++++++++++++++++++++++++++++++++++
>>   tests/qemu-iotests/314.out |  75 +++++++++++++++++
>>   7 files changed, 415 insertions(+), 28 deletions(-)
>>   create mode 100755 tests/qemu-iotests/314
>>   create mode 100644 tests/qemu-iotests/314.out
>>
> ping

Friendly ping after 7 weeks
Andrey Drobyshev July 31, 2023, 2:43 p.m. UTC | #4
On 7/24/23 16:11, Andrey Drobyshev wrote:
> On 6/30/23 13:54, Denis V. Lunev wrote:
>> On 6/1/23 21:28, Andrey Drobyshev wrote:
>>> This series is adding [-c | --compress] option to "qemu-img rebase"
>>> command, which might prove useful for saving some disk space when, for
>>> instance, manipulating chains of backup images.  Along the way I had to
>>> make a couple of minor improvements.
>>>
>>> The first 2 patches are a bug fix + corresponding test case.
>>> Patch 3 merely fixes wrong args used in allocation.
>>> Patch 4 makes write requests during rebase operation
>>> cluster_size-aligned,
>>> which seems to be beneficial for both non-compressed and compressed mode.
>>> The last 2 patches are the actual feature implementation + tests.
>>>
>>> Andrey Drobyshev (6):
>>>    qemu-img: rebase: stop when reaching EOF of old backing file
>>>    qemu-iotests: 024: add rebasing test case for overlay_size >
>>>      backing_size
>>>    qemu-img: rebase: use backing files' BlockBackend for buffer alignment
>>>    qemu-img: rebase: avoid unnecessary COW operations
>>>    qemu-img: add compression option to rebase subcommand
>>>    iotests: add test 314 for "qemu-img rebase" with compression
>>>
>>>   docs/tools/qemu-img.rst    |   6 +-
>>>   qemu-img-cmds.hx           |   4 +-
>>>   qemu-img.c                 | 106 ++++++++++++++++++------
>>>   tests/qemu-iotests/024     |  57 +++++++++++++
>>>   tests/qemu-iotests/024.out |  30 +++++++
>>>   tests/qemu-iotests/314     | 165 +++++++++++++++++++++++++++++++++++++
>>>   tests/qemu-iotests/314.out |  75 +++++++++++++++++
>>>   7 files changed, 415 insertions(+), 28 deletions(-)
>>>   create mode 100755 tests/qemu-iotests/314
>>>   create mode 100644 tests/qemu-iotests/314.out
>>>
>> ping
> 
> Friendly ping after 7 weeks

Yet another ping
Andrey Drobyshev Aug. 16, 2023, 9:22 a.m. UTC | #5
On 7/31/23 17:43, Andrey Drobyshev wrote:
> On 7/24/23 16:11, Andrey Drobyshev wrote:
>> On 6/30/23 13:54, Denis V. Lunev wrote:
>>> On 6/1/23 21:28, Andrey Drobyshev wrote:
>>>> This series is adding [-c | --compress] option to "qemu-img rebase"
>>>> command, which might prove useful for saving some disk space when, for
>>>> instance, manipulating chains of backup images.  Along the way I had to
>>>> make a couple of minor improvements.
>>>>
>>>> The first 2 patches are a bug fix + corresponding test case.
>>>> Patch 3 merely fixes wrong args used in allocation.
>>>> Patch 4 makes write requests during rebase operation
>>>> cluster_size-aligned,
>>>> which seems to be beneficial for both non-compressed and compressed mode.
>>>> The last 2 patches are the actual feature implementation + tests.
>>>>
>>>> Andrey Drobyshev (6):
>>>>    qemu-img: rebase: stop when reaching EOF of old backing file
>>>>    qemu-iotests: 024: add rebasing test case for overlay_size >
>>>>      backing_size
>>>>    qemu-img: rebase: use backing files' BlockBackend for buffer alignment
>>>>    qemu-img: rebase: avoid unnecessary COW operations
>>>>    qemu-img: add compression option to rebase subcommand
>>>>    iotests: add test 314 for "qemu-img rebase" with compression
>>>>
>>>>   docs/tools/qemu-img.rst    |   6 +-
>>>>   qemu-img-cmds.hx           |   4 +-
>>>>   qemu-img.c                 | 106 ++++++++++++++++++------
>>>>   tests/qemu-iotests/024     |  57 +++++++++++++
>>>>   tests/qemu-iotests/024.out |  30 +++++++
>>>>   tests/qemu-iotests/314     | 165 +++++++++++++++++++++++++++++++++++++
>>>>   tests/qemu-iotests/314.out |  75 +++++++++++++++++
>>>>   7 files changed, 415 insertions(+), 28 deletions(-)
>>>>   create mode 100755 tests/qemu-iotests/314
>>>>   create mode 100644 tests/qemu-iotests/314.out
>>>>
>>> ping
>>
>> Friendly ping after 7 weeks
> 
> Yet another ping

One more ping after 12 weeks of silence
Andrey Drobyshev Aug. 22, 2023, 5:35 p.m. UTC | #6
On 8/16/23 12:22, Andrey Drobyshev wrote:
> On 7/31/23 17:43, Andrey Drobyshev wrote:
>> On 7/24/23 16:11, Andrey Drobyshev wrote:
>>> On 6/30/23 13:54, Denis V. Lunev wrote:
>>>> On 6/1/23 21:28, Andrey Drobyshev wrote:
>>>>> This series is adding [-c | --compress] option to "qemu-img rebase"
>>>>> command, which might prove useful for saving some disk space when, for
>>>>> instance, manipulating chains of backup images.  Along the way I had to
>>>>> make a couple of minor improvements.
>>>>>
>>>>> The first 2 patches are a bug fix + corresponding test case.
>>>>> Patch 3 merely fixes wrong args used in allocation.
>>>>> Patch 4 makes write requests during rebase operation
>>>>> cluster_size-aligned,
>>>>> which seems to be beneficial for both non-compressed and compressed mode.
>>>>> The last 2 patches are the actual feature implementation + tests.
>>>>>
>>>>> Andrey Drobyshev (6):
>>>>>    qemu-img: rebase: stop when reaching EOF of old backing file
>>>>>    qemu-iotests: 024: add rebasing test case for overlay_size >
>>>>>      backing_size
>>>>>    qemu-img: rebase: use backing files' BlockBackend for buffer alignment
>>>>>    qemu-img: rebase: avoid unnecessary COW operations
>>>>>    qemu-img: add compression option to rebase subcommand
>>>>>    iotests: add test 314 for "qemu-img rebase" with compression
>>>>>
>>>>>   docs/tools/qemu-img.rst    |   6 +-
>>>>>   qemu-img-cmds.hx           |   4 +-
>>>>>   qemu-img.c                 | 106 ++++++++++++++++++------
>>>>>   tests/qemu-iotests/024     |  57 +++++++++++++
>>>>>   tests/qemu-iotests/024.out |  30 +++++++
>>>>>   tests/qemu-iotests/314     | 165 +++++++++++++++++++++++++++++++++++++
>>>>>   tests/qemu-iotests/314.out |  75 +++++++++++++++++
>>>>>   7 files changed, 415 insertions(+), 28 deletions(-)
>>>>>   create mode 100755 tests/qemu-iotests/314
>>>>>   create mode 100644 tests/qemu-iotests/314.out
>>>>>
>>>> ping
>>>
>>> Friendly ping after 7 weeks
>>
>> Yet another ping
> 
> One more ping after 12 weeks of silence

One more friendly ping