[Qemu-devel] [PATCH v2 0/6] block: avoid recursive AioContext acquire in bdrv_inactivate_all()

Stefan Hajnoczi posted 6 patches 6 years, 4 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20171207201320.19284-1-stefanha@redhat.com
Test checkpatch passed
Test docker passed
Test ppc passed
Test s390x passed
docs/devel/multiple-iothreads.txt |  7 +++--
qapi/block-core.json              |  6 +++-
include/sysemu/iothread.h         |  3 +-
block.c                           | 14 ++++++++--
blockdev.c                        | 11 ++++----
iothread.c                        | 20 +++++++++----
tests/qemu-iotests/203            | 59 +++++++++++++++++++++++++++++++++++++++
tests/qemu-iotests/203.out        |  6 ++++
tests/qemu-iotests/group          |  1 +
tests/qemu-iotests/iotests.py     |  5 ++++
10 files changed, 114 insertions(+), 18 deletions(-)
create mode 100755 tests/qemu-iotests/203
create mode 100644 tests/qemu-iotests/203.out
[Qemu-devel] [PATCH v2 0/6] block: avoid recursive AioContext acquire in bdrv_inactivate_all()
Posted by Stefan Hajnoczi 6 years, 4 months ago
v2:
 * Added docs/devel/multiple-iothreads.txt doc update [Kevin]
 * Added qemu-iotests 203 test case [Kevin]
 * Added iothread_stop() race fix to make 203 reliable

Patch 1 is Paolo's recursive locking removal in bdrv_inactivate_all().  This
solve migration hangs and is the main point of the patch series.

Patches 2-6 add a qemu-iotests test case and update the multiple-iothreads.txt
documentation to discourage recursive AioContext locking.

Based-on: <20171206144550.22295-1-stefanha@redhat.com>

Paolo Bonzini (1):
  block: avoid recursive AioContext acquire in bdrv_inactivate_all()

Stefan Hajnoczi (5):
  docs: mark nested AioContext locking as a legacy API
  blockdev: add x-blockdev-set-iothread force boolean
  iotests: add VM.add_object()
  iothread: fix iothread_stop() race condition
  qemu-iotests: add 203 savevm with IOThreads test

 docs/devel/multiple-iothreads.txt |  7 +++--
 qapi/block-core.json              |  6 +++-
 include/sysemu/iothread.h         |  3 +-
 block.c                           | 14 ++++++++--
 blockdev.c                        | 11 ++++----
 iothread.c                        | 20 +++++++++----
 tests/qemu-iotests/203            | 59 +++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/203.out        |  6 ++++
 tests/qemu-iotests/group          |  1 +
 tests/qemu-iotests/iotests.py     |  5 ++++
 10 files changed, 114 insertions(+), 18 deletions(-)
 create mode 100755 tests/qemu-iotests/203
 create mode 100644 tests/qemu-iotests/203.out

-- 
2.14.3


Re: [Qemu-devel] [PATCH v2 0/6] block: avoid recursive AioContext acquire in bdrv_inactivate_all()
Posted by Paolo Bonzini 6 years, 4 months ago
On 07/12/2017 21:13, Stefan Hajnoczi wrote:
> v2:
>  * Added docs/devel/multiple-iothreads.txt doc update [Kevin]
>  * Added qemu-iotests 203 test case [Kevin]
>  * Added iothread_stop() race fix to make 203 reliable
> 
> Patch 1 is Paolo's recursive locking removal in bdrv_inactivate_all().  This
> solve migration hangs and is the main point of the patch series.
> 
> Patches 2-6 add a qemu-iotests test case and update the multiple-iothreads.txt
> documentation to discourage recursive AioContext locking.
> 
> Based-on: <20171206144550.22295-1-stefanha@redhat.com>
> 
> Paolo Bonzini (1):
>   block: avoid recursive AioContext acquire in bdrv_inactivate_all()
> 
> Stefan Hajnoczi (5):
>   docs: mark nested AioContext locking as a legacy API
>   blockdev: add x-blockdev-set-iothread force boolean
>   iotests: add VM.add_object()
>   iothread: fix iothread_stop() race condition
>   qemu-iotests: add 203 savevm with IOThreads test
> 
>  docs/devel/multiple-iothreads.txt |  7 +++--
>  qapi/block-core.json              |  6 +++-
>  include/sysemu/iothread.h         |  3 +-
>  block.c                           | 14 ++++++++--
>  blockdev.c                        | 11 ++++----
>  iothread.c                        | 20 +++++++++----
>  tests/qemu-iotests/203            | 59 +++++++++++++++++++++++++++++++++++++++
>  tests/qemu-iotests/203.out        |  6 ++++
>  tests/qemu-iotests/group          |  1 +
>  tests/qemu-iotests/iotests.py     |  5 ++++
>  10 files changed, 114 insertions(+), 18 deletions(-)
>  create mode 100755 tests/qemu-iotests/203
>  create mode 100644 tests/qemu-iotests/203.out
> 

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>

aio_notify should also be put on the blacklist of things that have
slowly become bad ideas. :|

Paolo

Re: [Qemu-devel] [PATCH v2 0/6] block: avoid recursive AioContext acquire in bdrv_inactivate_all()
Posted by Stefan Hajnoczi 6 years, 4 months ago
On Thu, Dec 07, 2017 at 08:13:14PM +0000, Stefan Hajnoczi wrote:
> v2:
>  * Added docs/devel/multiple-iothreads.txt doc update [Kevin]
>  * Added qemu-iotests 203 test case [Kevin]
>  * Added iothread_stop() race fix to make 203 reliable
> 
> Patch 1 is Paolo's recursive locking removal in bdrv_inactivate_all().  This
> solve migration hangs and is the main point of the patch series.
> 
> Patches 2-6 add a qemu-iotests test case and update the multiple-iothreads.txt
> documentation to discourage recursive AioContext locking.
> 
> Based-on: <20171206144550.22295-1-stefanha@redhat.com>
> 
> Paolo Bonzini (1):
>   block: avoid recursive AioContext acquire in bdrv_inactivate_all()
> 
> Stefan Hajnoczi (5):
>   docs: mark nested AioContext locking as a legacy API
>   blockdev: add x-blockdev-set-iothread force boolean
>   iotests: add VM.add_object()
>   iothread: fix iothread_stop() race condition
>   qemu-iotests: add 203 savevm with IOThreads test
> 
>  docs/devel/multiple-iothreads.txt |  7 +++--
>  qapi/block-core.json              |  6 +++-
>  include/sysemu/iothread.h         |  3 +-
>  block.c                           | 14 ++++++++--
>  blockdev.c                        | 11 ++++----
>  iothread.c                        | 20 +++++++++----
>  tests/qemu-iotests/203            | 59 +++++++++++++++++++++++++++++++++++++++
>  tests/qemu-iotests/203.out        |  6 ++++
>  tests/qemu-iotests/group          |  1 +
>  tests/qemu-iotests/iotests.py     |  5 ++++
>  10 files changed, 114 insertions(+), 18 deletions(-)
>  create mode 100755 tests/qemu-iotests/203
>  create mode 100644 tests/qemu-iotests/203.out
> 
> -- 
> 2.14.3
> 

Thanks, applied to my block-next tree:
https://github.com/stefanha/qemu/commits/block-next

Stefan