qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH for 2.10 00/17] Block layer thread safety, part


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH for 2.10 00/17] Block layer thread safety, part 1
Date: Tue, 2 May 2017 17:42:12 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0


On 20/04/2017 14:00, Paolo Bonzini wrote:
> This series uses mutexes or atomic operations around core block layer
> operations.  The remaining parts include:
> 
> - drivers, though most of them are already thread safe (part 2, 8 patches,
>   depends on Kevin's conversion of QED to coroutines)
> 
> - block jobs, before-write notifiers, the write threshold mechanism,
>   snapshots, replication, key management (part 3, 16 patches)
> 
> - devices (virtio-blk/virtio-scsi, part 4, 5 patches)
> 
> Once these four parts are done the AioContext lock can be removed
> together with all temporary workarounds that have accumulated.

Ping?

Paolo

> Paolo
> 
> Paolo Bonzini (17):
>   block: access copy_on_read with atomic ops
>   block: access quiesce_counter with atomic ops
>   block: access io_limits_disabled with atomic ops
>   block: access serialising_in_flight with atomic ops
>   block: access wakeup with atomic ops
>   block: access io_plugged with atomic ops
>   throttle-groups: do not use qemu_co_enter_next
>   throttle-groups: protect throttled requests with a CoMutex
>   util: add stats64 module
>   block: use Stat64 for wr_highest_offset
>   block: access write_gen with atomics
>   block: protect tracked_requests and flush_queue with reqs_lock
>   coroutine-lock: introduce qemu_co_mutex_lock_unlock
>   block: optimize access to reqs_lock
>   block: introduce dirty_bitmap_mutex
>   block: protect modification of dirty bitmaps with a mutex
>   block: make accounting thread-safe
> 
>  block.c                        |  10 +-
>  block/accounting.c             |  15 +++
>  block/block-backend.c          |   5 +-
>  block/dirty-bitmap.c           | 125 ++++++++++++++++++++++--
>  block/io.c                     |  70 +++++++++-----
>  block/mirror.c                 |  14 ++-
>  block/nfs.c                    |   4 +-
>  block/qapi.c                   |   2 +-
>  block/sheepdog.c               |   3 +-
>  block/throttle-groups.c        |  76 +++++++++++++--
>  block/write-threshold.c        |  37 ++++----
>  blockdev.c                     |  46 ++-------
>  include/block/accounting.h     |   8 +-
>  include/block/block.h          |   5 +-
>  include/block/block_int.h      |  63 ++++++++-----
>  include/block/dirty-bitmap.h   |  23 ++++-
>  include/qemu/coroutine.h       |   6 ++
>  include/qemu/stats64.h         | 210 
> +++++++++++++++++++++++++++++++++++++++++
>  include/sysemu/block-backend.h |  10 +-
>  migration/block.c              |   6 --
>  util/Makefile.objs             |   1 +
>  util/qemu-coroutine-lock.c     |  36 +++++++
>  util/stats64.c                 | 135 ++++++++++++++++++++++++++
>  23 files changed, 763 insertions(+), 147 deletions(-)
>  create mode 100644 include/qemu/stats64.h
>  create mode 100644 util/stats64.c
> 



reply via email to

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