mbox

[PULL,v2,0/9] Block jobs & NBD patches

Message ID 20220629081517.446432-1-vsementsov@yandex-team.ru
State New
Headers show

Pull-request

https://gitlab.com/vsementsov/qemu.git tags/pull-block-2022-06-14-v2

Message

Vladimir Sementsov-Ogievskiy June 29, 2022, 8:15 a.m. UTC
The following changes since commit ad4c7f529a279685da84297773b4ec8080153c2d:

  Merge tag 'pull-semi-20220628' of https://gitlab.com/rth7680/qemu into staging (2022-06-28 10:24:31 +0530)

are available in the Git repository at:

  https://gitlab.com/vsementsov/qemu.git tags/pull-block-2022-06-14-v2

for you to fetch changes up to 1b8f777673985af366de099ad4e41d334b36fb12:

  block: use 'unsigned' for in_flight field on driver state (2022-06-29 10:57:02 +0300)

----------------------------------------------------------------
Block jobs & NBD patches

v2: - add arguments to QEMUMachine constructor in test, to make it work
      on arm in gitlab pipeline
    - use bdrv_inc_in_flight() / bdrv_dec_in_flight() instead of direct
      manipulation with bs->in_flight

- add new options for copy-before-write filter
- new trace points for NBD
- prefer unsigned type for some 'in_flight' fields

Denis V. Lunev (2):
  nbd: trace long NBD operations
  block: use 'unsigned' for in_flight field on driver state

Vladimir Sementsov-Ogievskiy (7):
  block/copy-before-write: refactor option parsing
  block/copy-before-write: add on-cbw-error open parameter
  iotests: add copy-before-write: on-cbw-error tests
  util: add qemu-co-timeout
  block/block-copy: block_copy(): add timeout_ns parameter
  block/copy-before-write: implement cbw-timeout option
  iotests: copy-before-write: add cases for cbw-timeout option

 block/block-copy.c                            |  33 ++-
 block/copy-before-write.c                     | 110 ++++++---
 block/mirror.c                                |   2 +-
 block/nbd.c                                   |   8 +-
 block/trace-events                            |   2 +
 include/block/block-copy.h                    |   4 +-
 include/qemu/coroutine.h                      |  13 ++
 nbd/client-connection.c                       |   2 +
 nbd/trace-events                              |   3 +
 qapi/block-core.json                          |  31 ++-
 tests/qemu-iotests/pylintrc                   |   5 +
 tests/qemu-iotests/tests/copy-before-write    | 216 ++++++++++++++++++
 .../qemu-iotests/tests/copy-before-write.out  |   5 +
 util/meson.build                              |   1 +
 util/qemu-co-timeout.c                        |  89 ++++++++
 15 files changed, 482 insertions(+), 42 deletions(-)
 create mode 100755 tests/qemu-iotests/tests/copy-before-write
 create mode 100644 tests/qemu-iotests/tests/copy-before-write.out
 create mode 100644 util/qemu-co-timeout.c

Comments

Richard Henderson June 29, 2022, 11:18 p.m. UTC | #1
On 6/29/22 13:45, Vladimir Sementsov-Ogievskiy wrote:
> The following changes since commit ad4c7f529a279685da84297773b4ec8080153c2d:
> 
>    Merge tag 'pull-semi-20220628' of https://gitlab.com/rth7680/qemu into staging (2022-06-28 10:24:31 +0530)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/vsementsov/qemu.git tags/pull-block-2022-06-14-v2
> 
> for you to fetch changes up to 1b8f777673985af366de099ad4e41d334b36fb12:
> 
>    block: use 'unsigned' for in_flight field on driver state (2022-06-29 10:57:02 +0300)
> 
> ----------------------------------------------------------------
> Block jobs & NBD patches
> 
> v2: - add arguments to QEMUMachine constructor in test, to make it work
>        on arm in gitlab pipeline
>      - use bdrv_inc_in_flight() / bdrv_dec_in_flight() instead of direct
>        manipulation with bs->in_flight

Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/7.1 as appropriate.


r~


> 
> - add new options for copy-before-write filter
> - new trace points for NBD
> - prefer unsigned type for some 'in_flight' fields
> 
> Denis V. Lunev (2):
>    nbd: trace long NBD operations
>    block: use 'unsigned' for in_flight field on driver state
> 
> Vladimir Sementsov-Ogievskiy (7):
>    block/copy-before-write: refactor option parsing
>    block/copy-before-write: add on-cbw-error open parameter
>    iotests: add copy-before-write: on-cbw-error tests
>    util: add qemu-co-timeout
>    block/block-copy: block_copy(): add timeout_ns parameter
>    block/copy-before-write: implement cbw-timeout option
>    iotests: copy-before-write: add cases for cbw-timeout option
> 
>   block/block-copy.c                            |  33 ++-
>   block/copy-before-write.c                     | 110 ++++++---
>   block/mirror.c                                |   2 +-
>   block/nbd.c                                   |   8 +-
>   block/trace-events                            |   2 +
>   include/block/block-copy.h                    |   4 +-
>   include/qemu/coroutine.h                      |  13 ++
>   nbd/client-connection.c                       |   2 +
>   nbd/trace-events                              |   3 +
>   qapi/block-core.json                          |  31 ++-
>   tests/qemu-iotests/pylintrc                   |   5 +
>   tests/qemu-iotests/tests/copy-before-write    | 216 ++++++++++++++++++
>   .../qemu-iotests/tests/copy-before-write.out  |   5 +
>   util/meson.build                              |   1 +
>   util/qemu-co-timeout.c                        |  89 ++++++++
>   15 files changed, 482 insertions(+), 42 deletions(-)
>   create mode 100755 tests/qemu-iotests/tests/copy-before-write
>   create mode 100644 tests/qemu-iotests/tests/copy-before-write.out
>   create mode 100644 util/qemu-co-timeout.c
>
John Snow July 1, 2022, 5:02 p.m. UTC | #2
On Wed, Jun 29, 2022 at 7:18 PM Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> On 6/29/22 13:45, Vladimir Sementsov-Ogievskiy wrote:
> > The following changes since commit ad4c7f529a279685da84297773b4ec8080153c2d:
> >
> >    Merge tag 'pull-semi-20220628' of https://gitlab.com/rth7680/qemu into staging (2022-06-28 10:24:31 +0530)
> >
> > are available in the Git repository at:
> >
> >    https://gitlab.com/vsementsov/qemu.git tags/pull-block-2022-06-14-v2
> >
> > for you to fetch changes up to 1b8f777673985af366de099ad4e41d334b36fb12:
> >
> >    block: use 'unsigned' for in_flight field on driver state (2022-06-29 10:57:02 +0300)
> >
> > ----------------------------------------------------------------
> > Block jobs & NBD patches
> >
> > v2: - add arguments to QEMUMachine constructor in test, to make it work
> >        on arm in gitlab pipeline
> >      - use bdrv_inc_in_flight() / bdrv_dec_in_flight() instead of direct
> >        manipulation with bs->in_flight
>
> Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/7.1 as appropriate.
>
>
> r~
>
>
> >
> > - add new options for copy-before-write filter
> > - new trace points for NBD
> > - prefer unsigned type for some 'in_flight' fields
> >
> > Denis V. Lunev (2):
> >    nbd: trace long NBD operations
> >    block: use 'unsigned' for in_flight field on driver state
> >
> > Vladimir Sementsov-Ogievskiy (7):
> >    block/copy-before-write: refactor option parsing
> >    block/copy-before-write: add on-cbw-error open parameter
> >    iotests: add copy-before-write: on-cbw-error tests
> >    util: add qemu-co-timeout
> >    block/block-copy: block_copy(): add timeout_ns parameter
> >    block/copy-before-write: implement cbw-timeout option
> >    iotests: copy-before-write: add cases for cbw-timeout option
> >
> >   block/block-copy.c                            |  33 ++-
> >   block/copy-before-write.c                     | 110 ++++++---
> >   block/mirror.c                                |   2 +-
> >   block/nbd.c                                   |   8 +-
> >   block/trace-events                            |   2 +
> >   include/block/block-copy.h                    |   4 +-
> >   include/qemu/coroutine.h                      |  13 ++
> >   nbd/client-connection.c                       |   2 +
> >   nbd/trace-events                              |   3 +
> >   qapi/block-core.json                          |  31 ++-
> >   tests/qemu-iotests/pylintrc                   |   5 +
> >   tests/qemu-iotests/tests/copy-before-write    | 216 ++++++++++++++++++
> >   .../qemu-iotests/tests/copy-before-write.out  |   5 +
> >   util/meson.build                              |   1 +
> >   util/qemu-co-timeout.c                        |  89 ++++++++
> >   15 files changed, 482 insertions(+), 42 deletions(-)
> >   create mode 100755 tests/qemu-iotests/tests/copy-before-write
> >   create mode 100644 tests/qemu-iotests/tests/copy-before-write.out
> >   create mode 100644 util/qemu-co-timeout.c
> >
>
>

iotests: copy-before-write: add cases for cbw-timeout option

- This is causing the FreeBSD VM tests to regress for me, because the
new iotest is failing there. Haven't diagnosed further yet, but I will
update this thread if I get better info.

--js
Vladimir Sementsov-Ogievskiy July 4, 2022, 3:10 p.m. UTC | #3
On 7/1/22 20:02, John Snow wrote:
> On Wed, Jun 29, 2022 at 7:18 PM Richard Henderson
> <richard.henderson@linaro.org> wrote:
>>
>> On 6/29/22 13:45, Vladimir Sementsov-Ogievskiy wrote:
>>> The following changes since commit ad4c7f529a279685da84297773b4ec8080153c2d:
>>>
>>>     Merge tag 'pull-semi-20220628' of https://gitlab.com/rth7680/qemu into staging (2022-06-28 10:24:31 +0530)
>>>
>>> are available in the Git repository at:
>>>
>>>     https://gitlab.com/vsementsov/qemu.git tags/pull-block-2022-06-14-v2
>>>
>>> for you to fetch changes up to 1b8f777673985af366de099ad4e41d334b36fb12:
>>>
>>>     block: use 'unsigned' for in_flight field on driver state (2022-06-29 10:57:02 +0300)
>>>
>>> ----------------------------------------------------------------
>>> Block jobs & NBD patches
>>>
>>> v2: - add arguments to QEMUMachine constructor in test, to make it work
>>>         on arm in gitlab pipeline
>>>       - use bdrv_inc_in_flight() / bdrv_dec_in_flight() instead of direct
>>>         manipulation with bs->in_flight
>>
>> Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/7.1 as appropriate.
>>
>>
>> r~
>>
>>
>>>
>>> - add new options for copy-before-write filter
>>> - new trace points for NBD
>>> - prefer unsigned type for some 'in_flight' fields
>>>
>>> Denis V. Lunev (2):
>>>     nbd: trace long NBD operations
>>>     block: use 'unsigned' for in_flight field on driver state
>>>
>>> Vladimir Sementsov-Ogievskiy (7):
>>>     block/copy-before-write: refactor option parsing
>>>     block/copy-before-write: add on-cbw-error open parameter
>>>     iotests: add copy-before-write: on-cbw-error tests
>>>     util: add qemu-co-timeout
>>>     block/block-copy: block_copy(): add timeout_ns parameter
>>>     block/copy-before-write: implement cbw-timeout option
>>>     iotests: copy-before-write: add cases for cbw-timeout option
>>>
>>>    block/block-copy.c                            |  33 ++-
>>>    block/copy-before-write.c                     | 110 ++++++---
>>>    block/mirror.c                                |   2 +-
>>>    block/nbd.c                                   |   8 +-
>>>    block/trace-events                            |   2 +
>>>    include/block/block-copy.h                    |   4 +-
>>>    include/qemu/coroutine.h                      |  13 ++
>>>    nbd/client-connection.c                       |   2 +
>>>    nbd/trace-events                              |   3 +
>>>    qapi/block-core.json                          |  31 ++-
>>>    tests/qemu-iotests/pylintrc                   |   5 +
>>>    tests/qemu-iotests/tests/copy-before-write    | 216 ++++++++++++++++++
>>>    .../qemu-iotests/tests/copy-before-write.out  |   5 +
>>>    util/meson.build                              |   1 +
>>>    util/qemu-co-timeout.c                        |  89 ++++++++
>>>    15 files changed, 482 insertions(+), 42 deletions(-)
>>>    create mode 100755 tests/qemu-iotests/tests/copy-before-write
>>>    create mode 100644 tests/qemu-iotests/tests/copy-before-write.out
>>>    create mode 100644 util/qemu-co-timeout.c
>>>
>>
>>
> 
> iotests: copy-before-write: add cases for cbw-timeout option
> 
> - This is causing the FreeBSD VM tests to regress for me, because the
> new iotest is failing there. Haven't diagnosed further yet, but I will
> update this thread if I get better info.
> 

Like other problems around this test (I had a hard debugging session for the problem that reproduces only on gitlab pipline :/, it may relate to the fact that I use QEMUMachine class directly and avoid -accel qtest. Also, to fix test on ARM, I've added -machine none.