[PULL 00/56] Block patches

Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210901151619.689075-1-hreitz@redhat.com
Maintainers: Eduardo Habkost <ehabkost@redhat.com>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Thomas Huth <thuth@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Markus Armbruster <armbru@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Eric Blake <eblake@redhat.com>, Cleber Rosa <crosa@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Stefan Weil <sw@weilnetz.de>, John Snow <jsnow@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, Willian Rampazzo <willianr@redhat.com>, Hanna Reitz <hreitz@redhat.com>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
There is a newer version of this series
docs/devel/testing.rst                      |  29 +++
qapi/block-core.json                        |  25 +-
block/{backup-top.h => copy-before-write.h} |  25 +-
include/block/block-copy.h                  |   6 +-
include/block/block.h                       |   2 +
include/hw/qdev-properties.h                |   1 +
include/sysemu/block-backend.h              |   1 +
block.c                                     |  31 +++
block/backup-top.c                          | 253 -------------------
block/backup.c                              | 116 ++-------
block/block-backend.c                       |   8 +
block/block-copy.c                          | 136 ++++++++---
block/copy-before-write.c                   | 256 ++++++++++++++++++++
block/export/fuse.c                         |   3 +
block/file-win32.c                          | 101 +++++++-
block/monitor/block-hmp-cmds.c              |  12 +-
block/raw-format.c                          |  21 +-
hw/core/qdev-properties-system.c            |  43 +++-
hw/core/qdev-properties.c                   |   6 +-
.gitlab-ci.d/buildtest.yml                  |   6 +-
MAINTAINERS                                 |   4 +-
block/meson.build                           |   2 +-
python/qemu/machine/machine.py              |  56 +++--
python/qemu/machine/qtest.py                |   9 +-
python/setup.cfg                            |   5 +
tests/qemu-iotests/222                      | 159 ------------
tests/qemu-iotests/222.out                  |  67 -----
tests/qemu-iotests/283                      |  35 ++-
tests/qemu-iotests/283.out                  |   4 +-
tests/qemu-iotests/297                      |   2 +-
tests/qemu-iotests/check                    |  15 +-
tests/qemu-iotests/common.qemu              |   7 +-
tests/qemu-iotests/common.rc                |   8 +-
tests/qemu-iotests/iotests.py               |  75 ++++--
tests/qemu-iotests/testenv.py               |  23 +-
tests/qemu-iotests/tests/image-fleecing     | 192 +++++++++++++++
tests/qemu-iotests/tests/image-fleecing.out | 139 +++++++++++
37 files changed, 1172 insertions(+), 711 deletions(-)
rename block/{backup-top.h => copy-before-write.h} (56%)
delete mode 100644 block/backup-top.c
create mode 100644 block/copy-before-write.c
delete mode 100755 tests/qemu-iotests/222
delete mode 100644 tests/qemu-iotests/222.out
create mode 100755 tests/qemu-iotests/tests/image-fleecing
create mode 100644 tests/qemu-iotests/tests/image-fleecing.out
[PULL 00/56] Block patches
Posted by Hanna Reitz 2 years, 7 months ago
The following changes since commit ec397e90d21269037280633b6058d1f280e27667:

  Merge remote-tracking branch 'remotes/alistair/tags/pull-riscv-to-apply-20210901-2' into staging (2021-09-01 08:33:02 +0100)

are available in the Git repository at:

  https://github.com/XanClic/qemu.git tags/pull-block-2021-09-01

for you to fetch changes up to ebd979c74e2b8a7275090475df36dde4ab858320:

  block/file-win32: add reopen handlers (2021-09-01 14:38:08 +0200)


**Note:** I’ve signed the pull request tag with my new GPG key, which I
have uploaded here:

  https://xanclic.moe/A1FA40D098019CDF

Included in that key should be the signature I made with my old key
(F407DB0061D5CF40), and I hope that’s sufficient to establish a
reasonable level of trust.

(I’ve also tried uploading this key to several keyservers, but it
appears to me that keyservers are kind of a thing of the past now,
especially when it comes to uploading keys with signatures on them...)

----------------------------------------------------------------
Block patches:
- Make the backup-top filter driver available for user-created block
  nodes (i.e. via blockdev-add)
- Allow running iotests with gdb or valgrind being attached to qemu
  instances
- Fix the raw format driver's permissions: There is no metadata, so we
  only need WRITE or RESIZE when the parent needs it
- Basic reopen implementation for win32 files (file-win32.c) so that
  qemu-img commit can work
- uclibc/musl build fix for the FUSE export code
- Some iotests delinting
- block-hmp-cmds.c refactoring

----------------------------------------------------------------
Emanuele Giuseppe Esposito (15):
  python: qemu: add timer parameter for qmp.accept socket
  python: qemu: pass the wrapper field from QEMUQtestmachine to
    QEMUMachine
  docs/devel/testing: add debug section to the QEMU iotests chapter
  qemu-iotests: add option to attach gdbserver
  qemu-iotests: delay QMP socket timers
  qemu_iotests: insert gdbserver command line as wrapper for qemu binary
  qemu-iotests: add gdbserver option to script tests too
  docs/devel/testing: add -gdb option to the debugging section of QEMU
    iotests
  qemu-iotests: extend the check script to prepare supporting valgrind
    for python tests
  qemu-iotests: extend QMP socket timeout when using valgrind
  qemu-iotests: allow valgrind to read/delete the generated log file
  qemu-iotests: insert valgrind command line as wrapper for qemu binary
  docs/devel/testing: add -valgrind option to the debug section of QEMU
    iotests
  qemu-iotests: add option to show qemu binary logs on stdout
  docs/devel/testing: add -p option to the debug section of QEMU iotests

Fabrice Fontaine (1):
  block/export/fuse.c: fix fuse-lseek on uclibc or musl

John Snow (3):
  python: Reduce strictness of pylint's duplicate-code check
  iotests: use with-statement for open() calls
  iotests: use subprocess.DEVNULL instead of open("/dev/null")

Mao Zhongyi (1):
  block/monitor: Consolidate hmp_handle_error calls to reduce redundant
    code

Stefan Hajnoczi (1):
  raw-format: drop WRITE and RESIZE child perms when possible

Viktor Prutyanov (1):
  block/file-win32: add reopen handlers

Vladimir Sementsov-Ogievskiy (34):
  block: introduce bdrv_replace_child_bs()
  block: introduce blk_replace_bs
  qdev-properties: PropertyInfo: add realized_set_allowed field
  qdev: allow setting drive property for realized device
  block: rename backup-top to copy-before-write
  block-copy: move detecting fleecing scheme to block-copy
  block/block-copy: introduce block_copy_set_copy_opts()
  block/backup: set copy_range and compress after filter insertion
  block/backup: move cluster size calculation to block-copy
  block/copy-before-write: relax permission requirements when no parents
  block/copy-before-write: drop extra bdrv_unref on failure path
  block/copy-before-write: use file child instead of backing
  block/copy-before-write: bdrv_cbw_append(): replace child at last
  block/copy-before-write: introduce cbw_init()
  block/copy-before-write: cbw_init(): rename variables
  block/copy-before-write: cbw_init(): use file child after attaching
  block/copy-before-write: bdrv_cbw_append(): drop unused compress arg
  block/copy-before-write: cbw_init(): use options
  block/copy-before-write: initialize block-copy bitmap
  block/block-copy: make setting progress optional
  block/copy-before-write: make public block driver
  qapi: publish copy-before-write filter
  python/qemu/machine.py: refactor _qemu_args()
  python/qemu/machine: QEMUMachine: improve qmp() method
  python:QEMUMachine: template typing for self returning methods
  iotests/222: fix pylint and mypy complains
  iotests/222: constantly use single quotes for strings
  iotests: move 222 to tests/image-fleecing
  iotests.py: hmp_qemu_io: support qdev
  iotests/image-fleecing: proper source device
  iotests/image-fleecing: rename tgt_node
  iotests/image-fleecing: prepare for adding new test-case
  iotests/image-fleecing: add test-case for copy-before-write filter
  block/block-copy: block_copy_state_new(): drop extra arguments

 docs/devel/testing.rst                      |  29 +++
 qapi/block-core.json                        |  25 +-
 block/{backup-top.h => copy-before-write.h} |  25 +-
 include/block/block-copy.h                  |   6 +-
 include/block/block.h                       |   2 +
 include/hw/qdev-properties.h                |   1 +
 include/sysemu/block-backend.h              |   1 +
 block.c                                     |  31 +++
 block/backup-top.c                          | 253 -------------------
 block/backup.c                              | 116 ++-------
 block/block-backend.c                       |   8 +
 block/block-copy.c                          | 136 ++++++++---
 block/copy-before-write.c                   | 256 ++++++++++++++++++++
 block/export/fuse.c                         |   3 +
 block/file-win32.c                          | 101 +++++++-
 block/monitor/block-hmp-cmds.c              |  12 +-
 block/raw-format.c                          |  21 +-
 hw/core/qdev-properties-system.c            |  43 +++-
 hw/core/qdev-properties.c                   |   6 +-
 .gitlab-ci.d/buildtest.yml                  |   6 +-
 MAINTAINERS                                 |   4 +-
 block/meson.build                           |   2 +-
 python/qemu/machine/machine.py              |  56 +++--
 python/qemu/machine/qtest.py                |   9 +-
 python/setup.cfg                            |   5 +
 tests/qemu-iotests/222                      | 159 ------------
 tests/qemu-iotests/222.out                  |  67 -----
 tests/qemu-iotests/283                      |  35 ++-
 tests/qemu-iotests/283.out                  |   4 +-
 tests/qemu-iotests/297                      |   2 +-
 tests/qemu-iotests/check                    |  15 +-
 tests/qemu-iotests/common.qemu              |   7 +-
 tests/qemu-iotests/common.rc                |   8 +-
 tests/qemu-iotests/iotests.py               |  75 ++++--
 tests/qemu-iotests/testenv.py               |  23 +-
 tests/qemu-iotests/tests/image-fleecing     | 192 +++++++++++++++
 tests/qemu-iotests/tests/image-fleecing.out | 139 +++++++++++
 37 files changed, 1172 insertions(+), 711 deletions(-)
 rename block/{backup-top.h => copy-before-write.h} (56%)
 delete mode 100644 block/backup-top.c
 create mode 100644 block/copy-before-write.c
 delete mode 100755 tests/qemu-iotests/222
 delete mode 100644 tests/qemu-iotests/222.out
 create mode 100755 tests/qemu-iotests/tests/image-fleecing
 create mode 100644 tests/qemu-iotests/tests/image-fleecing.out

-- 
2.31.1


Re: [PULL 00/56] Block patches
Posted by Peter Maydell 2 years, 7 months ago
On Wed, 1 Sept 2021 at 16:16, Hanna Reitz <hreitz@redhat.com> wrote:
>
> The following changes since commit ec397e90d21269037280633b6058d1f280e27667:
>
>   Merge remote-tracking branch 'remotes/alistair/tags/pull-riscv-to-apply-20210901-2' into staging (2021-09-01 08:33:02 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/XanClic/qemu.git tags/pull-block-2021-09-01
>
> for you to fetch changes up to ebd979c74e2b8a7275090475df36dde4ab858320:
>
>   block/file-win32: add reopen handlers (2021-09-01 14:38:08 +0200)
>
>
> **Note:** I’ve signed the pull request tag with my new GPG key, which I
> have uploaded here:
>
>   https://xanclic.moe/A1FA40D098019CDF

Hi. Unfortunately my employer's internet setup blocks access to
that site :-(

> (I’ve also tried uploading this key to several keyservers, but it
> appears to me that keyservers are kind of a thing of the past now,
> especially when it comes to uploading keys with signatures on them...)

IME keyserver.ubuntu.com is still functional.

thanks
-- PMM

Re: [PULL 00/56] Block patches
Posted by Hanna Reitz 2 years, 7 months ago
On 02.09.21 13:07, Peter Maydell wrote:
> On Wed, 1 Sept 2021 at 16:16, Hanna Reitz <hreitz@redhat.com> wrote:
>> The following changes since commit ec397e90d21269037280633b6058d1f280e27667:
>>
>>    Merge remote-tracking branch 'remotes/alistair/tags/pull-riscv-to-apply-20210901-2' into staging (2021-09-01 08:33:02 +0100)
>>
>> are available in the Git repository at:
>>
>>    https://github.com/XanClic/qemu.git tags/pull-block-2021-09-01
>>
>> for you to fetch changes up to ebd979c74e2b8a7275090475df36dde4ab858320:
>>
>>    block/file-win32: add reopen handlers (2021-09-01 14:38:08 +0200)
>>
>>
>> **Note:** I’ve signed the pull request tag with my new GPG key, which I
>> have uploaded here:
>>
>>    https://xanclic.moe/A1FA40D098019CDF
> Hi. Unfortunately my employer's internet setup blocks access to
> that site :-(

That’s too bad. :(

(Perhaps it works by IP? http://159.69.123.47:8080/A1FA40D098019CDF)

But I think it’s small enough that I can just attach it to this mail 
(which I’ve done).

>> (I’ve also tried uploading this key to several keyservers, but it
>> appears to me that keyservers are kind of a thing of the past now,
>> especially when it comes to uploading keys with signatures on them...)
> IME keyserver.ubuntu.com is still functional.

Yes, I’ve uploaded it there, too:

https://keyserver.ubuntu.com/pks/lookup?search=hreitz%40redhat.com&fingerprint=on&op=index

And it looks like that indeed it has capture my signature.

Hanna
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
VqSqp55kfm42yTjyrA1QBBouzs44B7O7puouzlU=
=iYO9
-----END PGP PUBLIC KEY BLOCK-----
Re: [PULL 00/56] Block patches
Posted by Peter Maydell 2 years, 7 months ago
On Wed, 1 Sept 2021 at 16:16, Hanna Reitz <hreitz@redhat.com> wrote:
>
> The following changes since commit ec397e90d21269037280633b6058d1f280e27667:
>
>   Merge remote-tracking branch 'remotes/alistair/tags/pull-riscv-to-apply-20210901-2' into staging (2021-09-01 08:33:02 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/XanClic/qemu.git tags/pull-block-2021-09-01
>
> for you to fetch changes up to ebd979c74e2b8a7275090475df36dde4ab858320:
>
>   block/file-win32: add reopen handlers (2021-09-01 14:38:08 +0200)
>
>
> **Note:** I’ve signed the pull request tag with my new GPG key, which I
> have uploaded here:
>
>   https://xanclic.moe/A1FA40D098019CDF
>
> Included in that key should be the signature I made with my old key
> (F407DB0061D5CF40), and I hope that’s sufficient to establish a
> reasonable level of trust.
>
> (I’ve also tried uploading this key to several keyservers, but it
> appears to me that keyservers are kind of a thing of the past now,
> especially when it comes to uploading keys with signatures on them...)
>
> ----------------------------------------------------------------
> Block patches:
> - Make the backup-top filter driver available for user-created block
>   nodes (i.e. via blockdev-add)
> - Allow running iotests with gdb or valgrind being attached to qemu
>   instances
> - Fix the raw format driver's permissions: There is no metadata, so we
>   only need WRITE or RESIZE when the parent needs it
> - Basic reopen implementation for win32 files (file-win32.c) so that
>   qemu-img commit can work
> - uclibc/musl build fix for the FUSE export code
> - Some iotests delinting
> - block-hmp-cmds.c refactoring
>


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/6.2
for any user-visible changes.

-- PMM