qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH v2 00/18] Block layer thread safety, part 1


From: Paolo Bonzini
Subject: [Qemu-devel] [PATCH v2 00/18] Block layer thread safety, part 1
Date: Thu, 11 May 2017 16:41:50 +0200

This series uses mutexes or atomic operations around core block layer
operations.  The remaining parts include:

I've removed the failing assertion in bdrv_aligned_pwritev in order to
test block migration.

Paolo

v1->v2: add missing comment for 'wakeup' member [Fam]
        rewrite throttle-groups part [Stefan]
        rename ThrottleState CoMutex [Fam]
        minor stats64 changes [Fam, Roman, me]
        fixed bdrv_flush [Fam, me]
        dropped request spinlock optimization for now [Stefan]
        avoid global dirty bitmap mutex [Fam]
        avoid introducing unlocked bdrv_get_dirty API [Stefan]
        replaced spinlock with mutex for accounting [Stefan]
        

Paolo Bonzini (18):
  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: only start one coroutine from drained_begin
  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
  block: introduce dirty_bitmap_mutex
  migration/block: reset dirty bitmap before reading
  block: protect modification of dirty bitmaps with a mutex
  block: introduce block_account_one_io
  block: make accounting thread-safe

 block.c                        |   9 +-
 block/accounting.c             |  64 ++++++++------
 block/block-backend.c          |   5 +-
 block/dirty-bitmap.c           | 112 ++++++++++++++++++++++--
 block/io.c                     |  51 ++++++-----
 block/mirror.c                 |  14 ++-
 block/nfs.c                    |   4 +-
 block/qapi.c                   |   2 +-
 block/sheepdog.c               |   3 +-
 block/throttle-groups.c        |  91 ++++++++++++++-----
 blockdev.c                     |  46 ++--------
 include/block/accounting.h     |   8 +-
 include/block/block.h          |   5 +-
 include/block/block_int.h      |  61 ++++++++-----
 include/block/dirty-bitmap.h   |  25 ++++--
 include/qemu/stats64.h         | 193 +++++++++++++++++++++++++++++++++++++++++
 include/sysemu/block-backend.h |  10 +--
 migration/block.c              |  17 ++--
 util/Makefile.objs             |   1 +
 util/stats64.c                 | 136 +++++++++++++++++++++++++++++
 20 files changed, 679 insertions(+), 178 deletions(-)
 create mode 100644 include/qemu/stats64.h
 create mode 100644 util/stats64.c

-- 
2.12.2




reply via email to

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