qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] e2f948: python: qemu: add timer parameter for


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] e2f948: python: qemu: add timer parameter for qmp.accept s...
Date: Thu, 02 Sep 2021 05:01:24 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: e2f948a8b579c382065012c34aa7e46304ec8759
      
https://github.com/qemu/qemu/commit/e2f948a8b579c382065012c34aa7e46304ec8759
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M python/qemu/machine/machine.py
    M python/qemu/machine/qtest.py
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  python: qemu: add timer parameter for qmp.accept socket

Also add a new _qmp_timer field to the QEMUMachine class.

Let's change the default socket timeout to None, so that if
a subclass needs to add a timer, it can be done by modifying
this private field.

At the same time, restore the timer to be 15 seconds in iotests.py, to
give an upper bound to the QMP monitor test command execution.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Acked-by: John Snow <jsnow@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-2-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 22305c2a081b8b67e1181ebd821c076cc36fdcd2
      
https://github.com/qemu/qemu/commit/22305c2a081b8b67e1181ebd821c076cc36fdcd2
  Author: John Snow <jsnow@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M python/setup.cfg

  Log Message:
  -----------
  python: Reduce strictness of pylint's duplicate-code check

Pylint prior to 2.8.3 (We pin at >= 2.8.0) includes function and method
signatures as part of its duplicate checking algorithm. This check does
not listen to pragmas, so the only way to disable it is to turn it off
completely or increase the minimum duplicate lines so that it doesn't
trigger for functions with long, multi-line signatures.

When we decide to upgrade to pylint 2.8.3 or greater, we will be able to
use 'ignore-signatures = true' to the config instead.

I'd prefer not to keep us on the very bleeding edge of pylint if I can
help it -- 2.8.3 came out only three days ago at time of writing.

See: https://github.com/PyCQA/pylint/pull/4474
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Acked-by: John Snow <jsnow@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-3-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 804f7695e535da902c1c5159cf53756f182aceb4
      
https://github.com/qemu/qemu/commit/804f7695e535da902c1c5159cf53756f182aceb4
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M python/qemu/machine/qtest.py

  Log Message:
  -----------
  python: qemu: pass the wrapper field from QEMUQtestmachine to QEMUMachine

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Acked-by: John Snow <jsnow@redhat.com>
Message-Id: <20210809090114.64834-4-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 0193767b25340ac6ea6e6ecfbc0c3d1c25c153ef
      
https://github.com/qemu/qemu/commit/0193767b25340ac6ea6e6ecfbc0c3d1c25c153ef
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M docs/devel/testing.rst

  Log Message:
  -----------
  docs/devel/testing: add debug section to the QEMU iotests chapter

Introduce the "Debugging a test case" section, in preparation
to the additional flags that will be added in the next patches.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-5-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: cfb9b0b731ff86f71fd8602be0da1e064795c7ce
      
https://github.com/qemu/qemu/commit/cfb9b0b731ff86f71fd8602be0da1e064795c7ce
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/check
    M tests/qemu-iotests/iotests.py
    M tests/qemu-iotests/testenv.py

  Log Message:
  -----------
  qemu-iotests: add option to attach gdbserver

Define -gdb flag and GDB_OPTIONS environment variable
to python tests to attach a gdbserver to each qemu instance.
This patch only adds and parses this flag, it does not yet add
the implementation for it.

if -gdb is not provided but $GDB_OPTIONS is set, ignore the
environment variable.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-6-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: d3ec2022cbac029bb42d4c3919aa63943baeac8f
      
https://github.com/qemu/qemu/commit/d3ec2022cbac029bb42d4c3919aa63943baeac8f
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  qemu-iotests: delay QMP socket timers

Attaching gdbserver implies that the qmp socket
should wait indefinitely for an answer from QEMU.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-7-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 776b9974e5b8b659d3b9b2a7dd6d84293c59664b
      
https://github.com/qemu/qemu/commit/776b9974e5b8b659d3b9b2a7dd6d84293c59664b
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  qemu_iotests: insert gdbserver command line as wrapper for qemu binary

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-8-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 4d14db0468b7b6495aae1d9de4efe2dc1d5c513d
      
https://github.com/qemu/qemu/commit/4d14db0468b7b6495aae1d9de4efe2dc1d5c513d
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/common.qemu
    M tests/qemu-iotests/common.rc

  Log Message:
  -----------
  qemu-iotests: add gdbserver option to script tests too

Remove read timer in test script when GDB_OPTIONS are set,
so that the bash tests won't timeout while running gdb.

The only limitation here is that running a script with gdbserver
will make the test output mismatch with the expected
results, making the test fail.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Message-Id: <20210809090114.64834-9-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: e92ecc322cd60be749309afda0d17d464961a230
      
https://github.com/qemu/qemu/commit/e92ecc322cd60be749309afda0d17d464961a230
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M docs/devel/testing.rst

  Log Message:
  -----------
  docs/devel/testing: add -gdb option to the debugging section of QEMU iotests

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-10-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: a9b4c6bb64b2908eb2d074fbe6d682ee7ff599e0
      
https://github.com/qemu/qemu/commit/a9b4c6bb64b2908eb2d074fbe6d682ee7ff599e0
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/check
    M tests/qemu-iotests/iotests.py
    M tests/qemu-iotests/testenv.py

  Log Message:
  -----------
  qemu-iotests: extend the check script to prepare supporting valgrind for 
python tests

Currently, the check script only parses the option and sets the
VALGRIND_QEMU environmental variable to "y".
Add another local python variable that prepares the command line,
identical to the one provided in the test scripts.

Because the python script does not know in advance the valgrind
PID to assign to the log file name, use the "%p" flag in valgrind
log file name that automatically puts the process PID at runtime.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210809090114.64834-11-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: d0c34326c89a6b1b839c61e6cc24d5befef7d38d
      
https://github.com/qemu/qemu/commit/d0c34326c89a6b1b839c61e6cc24d5befef7d38d
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  qemu-iotests: extend QMP socket timeout when using valgrind

As with gdbserver, valgrind delays the test execution, so
the default QMP socket timeout and the generic class
Timeout in iotests.py timeouts too soon.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-12-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: d792c8636afe6b302a0028518738d45ad2826a3d
      
https://github.com/qemu/qemu/commit/d792c8636afe6b302a0028518738d45ad2826a3d
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  qemu-iotests: allow valgrind to read/delete the generated log file

When using -valgrind on the script tests, it generates a log file
in $TEST_DIR that is either read (if valgrind finds problems) or
otherwise deleted. Provide the same exact behavior when using
-valgrind on the python tests.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-13-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 4032d1f69c1f8c61b69a226148b71287129ae014
      
https://github.com/qemu/qemu/commit/4032d1f69c1f8c61b69a226148b71287129ae014
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  qemu-iotests: insert valgrind command line as wrapper for qemu binary

If -gdb and -valgrind are both defined, return an error.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-14-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: bd10a7397ed93be4ea97b1e377578d13922134f5
      
https://github.com/qemu/qemu/commit/bd10a7397ed93be4ea97b1e377578d13922134f5
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M docs/devel/testing.rst

  Log Message:
  -----------
  docs/devel/testing: add -valgrind option to the debug section of QEMU iotests

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210809090114.64834-15-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: eb7a91d07ad831aeb372ff21b10e7a515ca786ec
      
https://github.com/qemu/qemu/commit/eb7a91d07ad831aeb372ff21b10e7a515ca786ec
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M python/qemu/machine/machine.py
    M tests/qemu-iotests/check
    M tests/qemu-iotests/iotests.py
    M tests/qemu-iotests/testenv.py

  Log Message:
  -----------
  qemu-iotests: add option to show qemu binary logs on stdout

Using the flag -p, allow the qemu binary to print to stdout.

Also create the common function _close_qemu_log_file() to
avoid accessing machine.py private fields directly and have
duplicate code.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-16-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 8ffcda2a70008fa69bab6c58e5ed362d924c7b55
      
https://github.com/qemu/qemu/commit/8ffcda2a70008fa69bab6c58e5ed362d924c7b55
  Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M docs/devel/testing.rst

  Log Message:
  -----------
  docs/devel/testing: add -p option to the debug section of QEMU iotests

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210809090114.64834-17-eesposit@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 8cca0bd289ed8aa1f4f26539bd9450fa04e16fc0
      
https://github.com/qemu/qemu/commit/8cca0bd289ed8aa1f4f26539bd9450fa04e16fc0
  Author: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/monitor/block-hmp-cmds.c

  Log Message:
  -----------
  block/monitor: Consolidate hmp_handle_error calls to reduce redundant code

Signed-off-by: Mao Zhongyi <maozhongyi@cmss.chinamobile.com>
Message-Id: <20210802062507.347555-1-maozhongyi@cmss.chinamobile.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: b68ce824098e4470e5c4f81065896a9ca8a45792
      
https://github.com/qemu/qemu/commit/b68ce824098e4470e5c4f81065896a9ca8a45792
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/raw-format.c

  Log Message:
  -----------
  raw-format: drop WRITE and RESIZE child perms when possible

The following command-line fails due to a permissions conflict:

  $ qemu-storage-daemon \
      --blockdev driver=nvme,node-name=nvme0,device=0000:08:00.0,namespace=1 \
      --blockdev driver=raw,node-name=l1-1,file=nvme0,offset=0,size=1073741824 \
      --blockdev 
driver=raw,node-name=l1-2,file=nvme0,offset=1073741824,size=1073741824 \
      --nbd-server addr.type=unix,addr.path=/tmp/nbd.sock,max-connections=2 \
      --export type=nbd,id=nbd-l1-1,node-name=l1-1,name=l1-1,writable=on \
      --export type=nbd,id=nbd-l1-2,node-name=l1-2,name=l1-2,writable=on

  qemu-storage-daemon: --export 
type=nbd,id=nbd-l1-1,node-name=l1-1,name=l1-1,writable=on: Permission conflict 
on node 'nvme0': permissions 'resize' are both required by node 'l1-1' (uses 
node 'nvme0' as 'file' child) and unshared by node 'l1-2' (uses node 'nvme0' as 
'file' child).

The problem is that block/raw-format.c relies on bdrv_default_perms() to
set permissions on the nvme node. The default permissions add RESIZE in
anticipation of a format driver like qcow2 that needs to grow the image
file. This fails because RESIZE is unshared, so we cannot get the RESIZE
permission.

Max Reitz pointed out that block/crypto.c already handles this case by
implementing a custom ->bdrv_child_perm() function that adjusts the
result of bdrv_default_perms().

This patch takes the same approach in block/raw-format.c so that RESIZE
is only required if it's actually necessary (e.g. the parent is qcow2).

Cc: Max Reitz <mreitz@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20210726122839.822900-1-stefanha@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 06aad78b825cc25329411b10c159f96819ce39a1
      
https://github.com/qemu/qemu/commit/06aad78b825cc25329411b10c159f96819ce39a1
  Author: John Snow <jsnow@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  iotests: use with-statement for open() calls

Silences a new pylint warning. The dangers of *not* doing this are
somewhat unclear; I believe the file object gets garbage collected
eventually, but possibly the way in which it happens is
non-deterministic. Maybe this is a valid warning, but if there are
consequences of not doing it, I am not aware of them at present.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-Id: <20210720173336.1876937-2-jsnow@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 79da62b352a954405b0894b980355497d58c5c84
      
https://github.com/qemu/qemu/commit/79da62b352a954405b0894b980355497d58c5c84
  Author: John Snow <jsnow@redhat.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  iotests: use subprocess.DEVNULL instead of open("/dev/null")

Avoids a warning from pylint not to use open() outside of a
with-statement, and is ... probably more portable anyway. Not that I
think we care too much about running tests *on* Windows, but... eh.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-Id: <20210720173336.1876937-3-jsnow@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: bd8f4c42c8547a74b0f92dc17af93c3247c69f18
      
https://github.com/qemu/qemu/commit/bd8f4c42c8547a74b0f92dc17af93c3247c69f18
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block.c
    M include/block/block.h

  Log Message:
  -----------
  block: introduce bdrv_replace_child_bs()

Add function to transactionally replace bs inside BdrvChild.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-2-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: ed089506eeb44fd7f7f385a9172e51b198ae489d
      
https://github.com/qemu/qemu/commit/ed089506eeb44fd7f7f385a9172e51b198ae489d
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/block-backend.c
    M include/sysemu/block-backend.h

  Log Message:
  -----------
  block: introduce blk_replace_bs

Add function to change bs inside blk.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-3-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: deb2bb163f798a4bc044be5e474792852cb0366b
      
https://github.com/qemu/qemu/commit/deb2bb163f798a4bc044be5e474792852cb0366b
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M hw/core/qdev-properties.c
    M include/hw/qdev-properties.h

  Log Message:
  -----------
  qdev-properties: PropertyInfo: add realized_set_allowed field

Add field, so property can declare support for setting the property
when device is realized. To be used in the following commit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-4-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: d1a58c176a11b439007c3a23223757497c02c332
      
https://github.com/qemu/qemu/commit/d1a58c176a11b439007c3a23223757497c02c332
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M hw/core/qdev-properties-system.c

  Log Message:
  -----------
  qdev: allow setting drive property for realized device

We need an ability to insert filters above top block node, attached to
block device. It can't be achieved with blockdev-reopen command. So, we
want do it with help of qom-set.

Intended usage:

Assume there is a node A that is attached to some guest device.

1. blockdev-add to create a filter node B that has A as its child.

2. qom-set to change the node attached to the guest device’s
   BlockBackend from A to B.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-5-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: d003e0aeced533074341c88fe6b58f97f8136397
      
https://github.com/qemu/qemu/commit/d003e0aeced533074341c88fe6b58f97f8136397
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M MAINTAINERS
    R block/backup-top.c
    R block/backup-top.h
    M block/backup.c
    A block/copy-before-write.c
    A block/copy-before-write.h
    M block/meson.build
    M tests/qemu-iotests/283
    M tests/qemu-iotests/283.out

  Log Message:
  -----------
  block: rename backup-top to copy-before-write

We are going to convert backup_top to full featured public filter,
which can be used in separate of backup job. Start from renaming from
"how it used" to "what it does".

While updating comments in 283 iotest, drop and rephrase also things
about ".active", as this field is now dropped, and filter doesn't have
"inactive" mode.

Note that this change may be considered as incompatible interface
change, as backup-top filter format name was visible through
query-block and query-named-block-nodes.

Still, consider the following reasoning:

1. backup-top was never documented, so if someone depends on format
   name (for driver that can't be used other than it is automatically
   inserted on backup job start), it's a kind of "undocumented feature
   use". So I think we are free to change it.

2. There is a hope, that there is no such users: it's a lot more native
   to give a good node-name to backup-top filter if need to operate
   with it somehow, and don't touch format name.

3. Another "incompatible" change in further commit would be moving
   copy-before-write filter from using backing child to file child. And
   this is even more reasonable than renaming: for now all public
   filters are file-child based.

So, it's a risky change, but risk seems small and good interface worth
it.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-6-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 49577723d40f56f7ac3d2f880423ae6652a2922d
      
https://github.com/qemu/qemu/commit/49577723d40f56f7ac3d2f880423ae6652a2922d
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/backup.c
    M block/block-copy.c
    M block/copy-before-write.c
    M block/copy-before-write.h
    M include/block/block-copy.h

  Log Message:
  -----------
  block-copy: move detecting fleecing scheme to block-copy

We want to simplify initialization interface of copy-before-write
filter as we are going to make it public. So, let's detect fleecing
scheme exactly in block-copy code, to not pass this information through
extra levels.

Why not just set BDRV_REQ_SERIALISING unconditionally: because we are
going to implement new more efficient fleecing scheme which will not
rely on backing feature.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20210824083856.17408-7-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: f8b9504bac3a658af81cb19aec9572aa086799e2
      
https://github.com/qemu/qemu/commit/f8b9504bac3a658af81cb19aec9572aa086799e2
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/block-copy.c
    M include/block/block-copy.h

  Log Message:
  -----------
  block/block-copy: introduce block_copy_set_copy_opts()

We'll need a possibility to set compress and use_copy_range options
after initialization of the state. So make corresponding part of
block_copy_state_new() separate and public.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210824083856.17408-8-vsementsov@virtuozzo.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 2a6511dfeb0d1bd10211b264177afbc360f9bd9d
      
https://github.com/qemu/qemu/commit/2a6511dfeb0d1bd10211b264177afbc360f9bd9d
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/backup.c
    M block/copy-before-write.c
    M block/copy-before-write.h

  Log Message:
  -----------
  block/backup: set copy_range and compress after filter insertion

We are going to publish copy-before-write filter, so it would be
initialized through options. Still we don't want to publish compress
and copy-range options, as

1. Modern way to enable compression is to use compress filter.

2. For copy-range it's unclean how to make proper interface:
 - it's has experimental prefix for backup job anyway
 - the whole BackupPerf structure doesn't make sense for the filter
 So, let's just add copy-range possibility to the filter later if
 needed.

Still, we are going to continue support for compression and
experimental copy-range in backup job. So, set these options after
filter creation.

Note, that we can drop "compress" argument of bdrv_cbw_append() now, as
well as "perf". The only reason not doing so is that now, when I
prepare this patch the big series around it is already reviewed and I
want to avoid extra rebase conflicts to simplify review of the
following version.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20210824083856.17408-9-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: b518e9e9ef7a28aa559a05d44dd734e83ae75f9d
      
https://github.com/qemu/qemu/commit/b518e9e9ef7a28aa559a05d44dd734e83ae75f9d
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/backup.c
    M block/block-copy.c
    M block/copy-before-write.c
    M block/copy-before-write.h
    M include/block/block-copy.h

  Log Message:
  -----------
  block/backup: move cluster size calculation to block-copy

The main consumer of cluster-size is block-copy. Let's calculate it
here instead of passing through backup-top.

We are going to publish copy-before-write filter soon, so it will be
created through options. But we don't want for now to make explicit
option for cluster-size, let's continue to calculate it automatically.
So, now is the time to get rid of cluster_size argument for
bdrv_cbw_append().

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-10-vsementsov@virtuozzo.com>
[hreitz: Add qemu/error-report.h include to block/block-copy.c]
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 3860c0201924d9f7f9b125b8bdda8a8627de4a08
      
https://github.com/qemu/qemu/commit/3860c0201924d9f7f9b125b8bdda8a8627de4a08
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/copy-before-write.c
    M tests/qemu-iotests/283.out

  Log Message:
  -----------
  block/copy-before-write: relax permission requirements when no parents

We are going to publish copy-before-write filter. So, user should be
able to create it with blockdev-add first, specifying both filtered and
target children. And then do blockdev-reopen, to actually insert the
filter where needed.

Currently, filter unshares write permission unconditionally on source
node. It's good, but it will not allow to do blockdev-add. So, let's
relax restrictions when filter doesn't have any parent.

Test output is modified, as now permission conflict happens only when
job creates a blk parent for filter node.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-11-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 451532311a6c37ac58794305c88307bd7c54526f
      
https://github.com/qemu/qemu/commit/451532311a6c37ac58794305c88307bd7c54526f
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/copy-before-write.c

  Log Message:
  -----------
  block/copy-before-write: drop extra bdrv_unref on failure path

bdrv_attach_child() do bdrv_unref() on failure, so we shouldn't do it
by hand here.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-12-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 3c1e63277e0e8528967ee179b63ef214d3a9a683
      
https://github.com/qemu/qemu/commit/3c1e63277e0e8528967ee179b63ef214d3a9a683
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/copy-before-write.c

  Log Message:
  -----------
  block/copy-before-write: use file child instead of backing

We are going to publish copy-before-write filter, and there no public
backing-child-based filter in Qemu. No reason to create a precedent, so
let's refactor copy-before-write filter instead.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-13-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 7ddbce2dec96f1d881db0a81541072a23d2b89b4
      
https://github.com/qemu/qemu/commit/7ddbce2dec96f1d881db0a81541072a23d2b89b4
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/copy-before-write.c

  Log Message:
  -----------
  block/copy-before-write: bdrv_cbw_append(): replace child at last

Refactor the function to replace child at last. Thus we don't need to
revert it and code is simplified.

block-copy state initialization being done before replacing the child
doesn't need any drained section.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-14-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 1f0cacb967bffc0d1284a2a5c6025b09f9a0f091
      
https://github.com/qemu/qemu/commit/1f0cacb967bffc0d1284a2a5c6025b09f9a0f091
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/copy-before-write.c

  Log Message:
  -----------
  block/copy-before-write: introduce cbw_init()

Move part of bdrv_cbw_append() to new function cbw_open(). It's an
intermediate step for adding normal .bdrv_open() handler to the
filter. With this commit no logic is changed, but we have a function
which will be turned into .bdrv_open() handler in future commit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-15-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: fe7ea40c0ea62d9d4542e6e091186cd60088d3fb
      
https://github.com/qemu/qemu/commit/fe7ea40c0ea62d9d4542e6e091186cd60088d3fb
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/copy-before-write.c

  Log Message:
  -----------
  block/copy-before-write: cbw_init(): rename variables

One more step closer to real .bdrv_open() handler: use more usual names
for bs being initialized and its state.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-16-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 5a507426740b4d7bdd2b333cfa7f5da3e60ebad8
      
https://github.com/qemu/qemu/commit/5a507426740b4d7bdd2b333cfa7f5da3e60ebad8
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/copy-before-write.c

  Log Message:
  -----------
  block/copy-before-write: cbw_init(): use file child after attaching

In the next commit we'll get rid of source argument of cbw_init().
Prepare to it now, to make next commit simpler: move the code block
that uses source below attaching the child and use bs->file->bs instead
of source variable.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-17-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 4c1e992bf2efa69394b5f2780a909f8ca1a6f722
      
https://github.com/qemu/qemu/commit/4c1e992bf2efa69394b5f2780a909f8ca1a6f722
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/backup.c
    M block/copy-before-write.c
    M block/copy-before-write.h

  Log Message:
  -----------
  block/copy-before-write: bdrv_cbw_append(): drop unused compress arg

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20210824083856.17408-18-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: f44fd7399cf35b2d4e8f264de508e8119c76a14a
      
https://github.com/qemu/qemu/commit/f44fd7399cf35b2d4e8f264de508e8119c76a14a
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/copy-before-write.c

  Log Message:
  -----------
  block/copy-before-write: cbw_init(): use options

One more step closer to .bdrv_open(): use options instead of plain
arguments. Move to bdrv_open_child() calls, native for drive open
handlers.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20210824083856.17408-19-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 06e0a9c16405c0a4c1eca33cf286cc04c42066a2
      
https://github.com/qemu/qemu/commit/06e0a9c16405c0a4c1eca33cf286cc04c42066a2
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/backup.c
    M block/copy-before-write.c

  Log Message:
  -----------
  block/copy-before-write: initialize block-copy bitmap

We are going to publish copy-before-write filter to be used in separate
of backup. Future step would support bitmap for the filter. But let's
start from full set bitmap.

We have to modify backup, as bitmap is first initialized by
copy-before-write filter, and then backup modifies it.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-20-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 201b4bb6c78b5845ec7a77fca1714a599dd76849
      
https://github.com/qemu/qemu/commit/201b4bb6c78b5845ec7a77fca1714a599dd76849
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/block-copy.c

  Log Message:
  -----------
  block/block-copy: make setting progress optional

Now block-copy will crash if user don't set progress meter by
block_copy_set_progress_meter(). copy-before-write filter will be used
in separate of backup job, and it doesn't want any progress meter (for
now). So, allow not setting it.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-21-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 751cec7a261adaf1145dc7adf6de7c9c084e5a0b
      
https://github.com/qemu/qemu/commit/751cec7a261adaf1145dc7adf6de7c9c084e5a0b
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/copy-before-write.c

  Log Message:
  -----------
  block/copy-before-write: make public block driver

Finally, copy-before-write gets own .bdrv_open and .bdrv_close
handlers, block_init() call and becomes available through bdrv_open().

To achieve this:

 - cbw_init gets unused flags argument and becomes cbw_open
 - block_copy_state_free() call moved to new cbw_close()
 - in bdrv_cbw_append:
   - options are completed with driver and node-name, and we can simply
     use bdrv_insert_node() to do both open and drained replacing
 - in bdrv_cbw_drop:
   - cbw_close() is now responsible for freeing s->bcs, so don't do it
     here

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-22-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 783b2825f6e493071aaed0f940fe359ec8a42fe0
      
https://github.com/qemu/qemu/commit/783b2825f6e493071aaed0f940fe359ec8a42fe0
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M qapi/block-core.json

  Log Message:
  -----------
  qapi: publish copy-before-write filter

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20210824083856.17408-23-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: c7daa57eb57e24a9427f636906f4faf2cfcbe943
      
https://github.com/qemu/qemu/commit/c7daa57eb57e24a9427f636906f4faf2cfcbe943
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M python/qemu/machine/machine.py

  Log Message:
  -----------
  python/qemu/machine.py: refactor _qemu_args()

 - use shorter construction
 - don't create new dict if not needed
 - drop extra unpacking key-val arguments
 - drop extra default values

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Message-Id: <20210824083856.17408-24-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 3f3c9b4c9dcb462b2330e50cf81b9703288884ec
      
https://github.com/qemu/qemu/commit/3f3c9b4c9dcb462b2330e50cf81b9703288884ec
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M python/qemu/machine/machine.py

  Log Message:
  -----------
  python/qemu/machine: QEMUMachine: improve qmp() method

We often call qmp() with unpacking dict, like qmp('foo', **{...}).
mypy don't really like it, it thinks that passed unpacked dict is a
positional argument and complains that it type should be bool (because
second argument of qmp() is conv_keys: bool).

Allow passing dict directly, simplifying interface, and giving a way to
satisfy mypy.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Message-Id: <20210824083856.17408-25-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 15c3b863ee6393fa326c142b725cff88bb3e719e
      
https://github.com/qemu/qemu/commit/15c3b863ee6393fa326c142b725cff88bb3e719e
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M python/qemu/machine/machine.py

  Log Message:
  -----------
  python:QEMUMachine: template typing for self returning methods

mypy thinks that return value of these methods in subclusses is
QEMUMachine, which is wrong. So, make typing smarter.

Suggested-by: John Snow <jsnow@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210824083856.17408-26-vsementsov@virtuozzo.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: f08ef04371b9abf38e84385ced274dd4727e55a4
      
https://github.com/qemu/qemu/commit/f08ef04371b9abf38e84385ced274dd4727e55a4
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/222
    M tests/qemu-iotests/297

  Log Message:
  -----------
  iotests/222: fix pylint and mypy complains

Here:
 - long line
 - move to new interface of vm.qmp() (direct passing dict), to avoid
   mypy false-positive, as it thinks that unpacked dict is a positional
   argument.
 - extra parenthesis
 - handle event_wait possible None value

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-27-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: bb053e47246324a28940b57ed084dca297b1c9a9
      
https://github.com/qemu/qemu/commit/bb053e47246324a28940b57ed084dca297b1c9a9
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/222

  Log Message:
  -----------
  iotests/222: constantly use single quotes for strings

The file use both single and double quotes for strings. Let's be
consistent.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-28-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: c88f078948008e9fb700c96eb957b895ea1a873b
      
https://github.com/qemu/qemu/commit/c88f078948008e9fb700c96eb957b895ea1a873b
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml
    R tests/qemu-iotests/222
    R tests/qemu-iotests/222.out
    A tests/qemu-iotests/tests/image-fleecing
    A tests/qemu-iotests/tests/image-fleecing.out

  Log Message:
  -----------
  iotests: move 222 to tests/image-fleecing

Give a good name to test file.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-29-vsementsov@virtuozzo.com>
[hreitz: Adjust .gitlab-ci.d/buildtest.yml]
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: e89c0c8de38f8c2dca22293aaf5e2c8ad74eb39c
      
https://github.com/qemu/qemu/commit/e89c0c8de38f8c2dca22293aaf5e2c8ad74eb39c
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  iotests.py: hmp_qemu_io: support qdev

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Message-Id: <20210824083856.17408-30-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: b23c3b1459e423159027fb413527dc0bf60acedf
      
https://github.com/qemu/qemu/commit/b23c3b1459e423159027fb413527dc0bf60acedf
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/tests/image-fleecing
    M tests/qemu-iotests/tests/image-fleecing.out

  Log Message:
  -----------
  iotests/image-fleecing: proper source device

Define scsi device to operate with it by qom-set in further patch.

Give a new node-name to source block node, to not look like device
name.

Job now don't want to work without giving explicit id, so, let's call
it "fleecing".

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-31-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 66b63809fa71c6880f9ec4fa3d32e35c79699ae6
      
https://github.com/qemu/qemu/commit/66b63809fa71c6880f9ec4fa3d32e35c79699ae6
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/tests/image-fleecing

  Log Message:
  -----------
  iotests/image-fleecing: rename tgt_node

Actually target of backup(sync=None) is not a final backup target:
image fleecing is intended to be used with external tool, which will
copy data from fleecing node to some real backup target.

Also, we are going to add a test case for "push backup with fleecing",
where instead of exporting fleecing node by NBD, we'll start a backup
job from fleecing node to real backup target.

To avoid confusion, let's rename temporary fleecing node now.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-32-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 32f84b40ab54188852c8ea0dd9f70bf316a2f226
      
https://github.com/qemu/qemu/commit/32f84b40ab54188852c8ea0dd9f70bf316a2f226
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/tests/image-fleecing

  Log Message:
  -----------
  iotests/image-fleecing: prepare for adding new test-case

We are going to add a test-case with some behavior modifications. So,
let's prepare a function to be reused.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-33-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: c0605985696a19ef034fa25d04f53f3b3b383896
      
https://github.com/qemu/qemu/commit/c0605985696a19ef034fa25d04f53f3b3b383896
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M tests/qemu-iotests/tests/image-fleecing
    M tests/qemu-iotests/tests/image-fleecing.out

  Log Message:
  -----------
  iotests/image-fleecing: add test-case for copy-before-write filter

New fleecing method becomes available: copy-before-write filter.

Actually we don't need backup job to setup image fleecing. Add test
for new recommended way of image fleecing.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210824083856.17408-34-vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: abde8ac2a506bbcfedb819d4c43ea1e3ac20cc87
      
https://github.com/qemu/qemu/commit/abde8ac2a506bbcfedb819d4c43ea1e3ac20cc87
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/block-copy.c
    M block/copy-before-write.c
    M include/block/block-copy.h

  Log Message:
  -----------
  block/block-copy: block_copy_state_new(): drop extra arguments

The only caller pass copy_range and compress both false. Let's just
drop these arguments.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210824083856.17408-35-vsementsov@virtuozzo.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 28031d5c7427aec6d6138920b92c59b999a349ed
      
https://github.com/qemu/qemu/commit/28031d5c7427aec6d6138920b92c59b999a349ed
  Author: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/export/fuse.c

  Log Message:
  -----------
  block/export/fuse.c: fix fuse-lseek on uclibc or musl

Include linux/fs.h to avoid the following build failure on uclibc or
musl raised since version 6.0.0:

../block/export/fuse.c: In function 'fuse_lseek':
../block/export/fuse.c:641:19: error: 'SEEK_HOLE' undeclared (first use in this 
function)
  641 |     if (whence != SEEK_HOLE && whence != SEEK_DATA) {
      |                   ^~~~~~~~~
../block/export/fuse.c:641:19: note: each undeclared identifier is reported 
only once for each function it appears in
../block/export/fuse.c:641:42: error: 'SEEK_DATA' undeclared (first use in this 
function); did you mean 'SEEK_SET'?
  641 |     if (whence != SEEK_HOLE && whence != SEEK_DATA) {
      |                                          ^~~~~~~~~
      |                                          SEEK_SET

Fixes:
 - 
http://autobuild.buildroot.org/results/33c90ebf04997f4d3557cfa66abc9cf9a3076137

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Message-Id: <20210827220301.272887-1-fontaine.fabrice@gmail.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: ebd979c74e2b8a7275090475df36dde4ab858320
      
https://github.com/qemu/qemu/commit/ebd979c74e2b8a7275090475df36dde4ab858320
  Author: Viktor Prutyanov <viktor.prutyanov@phystech.edu>
  Date:   2021-09-01 (Wed, 01 Sep 2021)

  Changed paths:
    M block/file-win32.c

  Log Message:
  -----------
  block/file-win32: add reopen handlers

Make 'qemu-img commit' work on Windows.

Command 'commit' requires reopening backing file in RW mode. So,
add reopen prepare/commit/abort handlers and change dwShareMode
for CreateFile call in order to allow further read/write reopening.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/418

Suggested-by: Hanna Reitz <hreitz@redhat.com>
Signed-off-by: Viktor Prutyanov <viktor.prutyanov@phystech.edu>
Tested-by: Helge Konetzka <hk@zapateado.de>
Message-Id: <20210825173625.19415-1-viktor.prutyanov@phystech.edu>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>


  Commit: 9093028dd48c50bc0392791f78aab44afef57ead
      
https://github.com/qemu/qemu/commit/9093028dd48c50bc0392791f78aab44afef57ead
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2021-09-02 (Thu, 02 Sep 2021)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml
    M MAINTAINERS
    M block.c
    R block/backup-top.c
    R block/backup-top.h
    M block/backup.c
    M block/block-backend.c
    M block/block-copy.c
    A block/copy-before-write.c
    A block/copy-before-write.h
    M block/export/fuse.c
    M block/file-win32.c
    M block/meson.build
    M block/monitor/block-hmp-cmds.c
    M block/raw-format.c
    M docs/devel/testing.rst
    M hw/core/qdev-properties-system.c
    M hw/core/qdev-properties.c
    M include/block/block-copy.h
    M include/block/block.h
    M include/hw/qdev-properties.h
    M include/sysemu/block-backend.h
    M python/qemu/machine/machine.py
    M python/qemu/machine/qtest.py
    M python/setup.cfg
    M qapi/block-core.json
    R tests/qemu-iotests/222
    R tests/qemu-iotests/222.out
    M tests/qemu-iotests/283
    M tests/qemu-iotests/283.out
    M tests/qemu-iotests/297
    M tests/qemu-iotests/check
    M tests/qemu-iotests/common.qemu
    M tests/qemu-iotests/common.rc
    M tests/qemu-iotests/iotests.py
    M tests/qemu-iotests/testenv.py
    A tests/qemu-iotests/tests/image-fleecing
    A tests/qemu-iotests/tests/image-fleecing.out

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/hreitz/tags/pull-block-2021-09-01' into 
staging

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

# gpg: Signature made Wed 01 Sep 2021 16:01:54 BST
# gpg:                using RSA key CB62D7A0EE3829E45F004D34A1FA40D098019CDF
# gpg:                issuer "hreitz@redhat.com"
# gpg: Good signature from "Hanna Reitz <hreitz@redhat.com>" [marginal]
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: CB62 D7A0 EE38 29E4 5F00  4D34 A1FA 40D0 9801 9CDF

* remotes/hreitz/tags/pull-block-2021-09-01: (56 commits)
  block/file-win32: add reopen handlers
  block/export/fuse.c: fix fuse-lseek on uclibc or musl
  block/block-copy: block_copy_state_new(): drop extra arguments
  iotests/image-fleecing: add test-case for copy-before-write filter
  iotests/image-fleecing: prepare for adding new test-case
  iotests/image-fleecing: rename tgt_node
  iotests/image-fleecing: proper source device
  iotests.py: hmp_qemu_io: support qdev
  iotests: move 222 to tests/image-fleecing
  iotests/222: constantly use single quotes for strings
  iotests/222: fix pylint and mypy complains
  python:QEMUMachine: template typing for self returning methods
  python/qemu/machine: QEMUMachine: improve qmp() method
  python/qemu/machine.py: refactor _qemu_args()
  qapi: publish copy-before-write filter
  block/copy-before-write: make public block driver
  block/block-copy: make setting progress optional
  block/copy-before-write: initialize block-copy bitmap
  block/copy-before-write: cbw_init(): use options
  block/copy-before-write: bdrv_cbw_append(): drop unused compress arg
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/59a89510b62e...9093028dd48c



reply via email to

[Prev in Thread] Current Thread [Next in Thread]