qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 8f90b5: block: get rid of bdrv_io_unplugged_b


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 8f90b5: block: get rid of bdrv_io_unplugged_begin/end
Date: Tue, 17 Jan 2017 06:00:03 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 8f90b5e91df59fde0dfecc6738ff39f3edf14be5
      
https://github.com/qemu/qemu/commit/8f90b5e91df59fde0dfecc6738ff39f3edf14be5
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-01-16 (Mon, 16 Jan 2017)

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

  Log Message:
  -----------
  block: get rid of bdrv_io_unplugged_begin/end

bdrv_io_plug and bdrv_io_unplug are only called (via their
BlockBackend equivalents) after starting asynchronous I/O.
bdrv_drain is not going to be called while they are running,
because---even if a coroutine runs for some reason---it will
only drain in the next iteration of the event loop through
bdrv_co_yield_to_drain.

So this mechanism is unnecessary, get rid of it.

Signed-off-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: cf2c02c8ea0f2d7888f3b45b20e7eb24b47a93f1
      
https://github.com/qemu/qemu/commit/cf2c02c8ea0f2d7888f3b45b20e7eb24b47a93f1
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-01-16 (Mon, 16 Jan 2017)

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

  Log Message:
  -----------
  aio: rename bh_lock to list_lock

This will be used for AioHandlers too.  There is going to be little
or no contention, so it is better to reuse the same lock.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 51dee5e465e1b3454a886792ca3e14b851e8e67d
      
https://github.com/qemu/qemu/commit/51dee5e465e1b3454a886792ca3e14b851e8e67d
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-01-16 (Mon, 16 Jan 2017)

  Changed paths:
    A docs/lockcnt.txt
    M include/qemu/thread.h
    M util/Makefile.objs
    A util/lockcnt.c

  Log Message:
  -----------
  qemu-thread: introduce QemuLockCnt

A QemuLockCnt comprises a counter and a mutex, with primitives
to increment and decrement the counter, and to take and release the
mutex.  It can be used to do lock-free visits to a data structure
whenever mutexes would be too heavy-weight and the critical section
is too long for RCU.

This could be implemented simply by protecting the counter with the
mutex, but QemuLockCnt is harder to misuse and more efficient.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: d7c99a1282ca2de1c344b8aa91be5364e9c6aa8f
      
https://github.com/qemu/qemu/commit/d7c99a1282ca2de1c344b8aa91be5364e9c6aa8f
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-01-16 (Mon, 16 Jan 2017)

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

  Log Message:
  -----------
  aio: make ctx->list_lock a QemuLockCnt, subsuming ctx->walking_bh

This will make it possible to walk the list of bottom halves without
holding the AioContext lock---and in turn to call bottom half
handlers without holding the lock.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: fbcc3e5004f01653b2885965c59cade25e286c18
      
https://github.com/qemu/qemu/commit/fbcc3e5004f01653b2885965c59cade25e286c18
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-01-16 (Mon, 16 Jan 2017)

  Changed paths:
    M docs/lockcnt.txt
    A include/qemu/futex.h
    M include/qemu/thread.h
    M util/lockcnt.c
    M util/qemu-thread-posix.c
    M util/qemu-thread-win32.c
    M util/trace-events

  Log Message:
  -----------
  qemu-thread: optimize QemuLockCnt with futexes on Linux

This is complex, but I think it is reasonably documented in the source.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 56d2c3c60d92dc24690b2e93b5f6ec4716ea06fa
      
https://github.com/qemu/qemu/commit/56d2c3c60d92dc24690b2e93b5f6ec4716ea06fa
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-01-16 (Mon, 16 Jan 2017)

  Changed paths:
    M aio-posix.c

  Log Message:
  -----------
  aio-posix: split aio_dispatch_handlers out of aio_dispatch

This simplifies the handling of dispatch_fds.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: abf90d39213cca30e92f6d72452a05cbf29969b8
      
https://github.com/qemu/qemu/commit/abf90d39213cca30e92f6d72452a05cbf29969b8
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-01-16 (Mon, 16 Jan 2017)

  Changed paths:
    M aio-posix.c
    M aio-win32.c

  Log Message:
  -----------
  aio: tweak walking in dispatch phase

Preparing for the following patch, use QLIST_FOREACH_SAFE and
modify the placement of walking_handlers increment/decrement.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 2bbf11d753761ca537333c2bd7ddadb06758f62c
      
https://github.com/qemu/qemu/commit/2bbf11d753761ca537333c2bd7ddadb06758f62c
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-01-16 (Mon, 16 Jan 2017)

  Changed paths:
    M aio-posix.c

  Log Message:
  -----------
  aio-posix: remove walking_handlers, protecting AioHandler list with list_lock

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: b92d9a91abae1569ac499f72fbb90ee7b0ae5398
      
https://github.com/qemu/qemu/commit/b92d9a91abae1569ac499f72fbb90ee7b0ae5398
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-01-16 (Mon, 16 Jan 2017)

  Changed paths:
    M aio-win32.c

  Log Message:
  -----------
  aio-win32: remove walking_handlers, protecting AioHandler list with list_lock

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 7c690fd1931f0908b18f7034b5d71d7b27ca59ef
      
https://github.com/qemu/qemu/commit/7c690fd1931f0908b18f7034b5d71d7b27ca59ef
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-01-16 (Mon, 16 Jan 2017)

  Changed paths:
    M docs/multiple-iothreads.txt
    M include/block/aio.h

  Log Message:
  -----------
  aio: document locking

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 7d506c90afa47facdb993bc19c15863eef584f1d
      
https://github.com/qemu/qemu/commit/7d506c90afa47facdb993bc19c15863eef584f1d
  Author: Paolo Bonzini <address@hidden>
  Date:   2017-01-16 (Mon, 16 Jan 2017)

  Changed paths:
    M async.c

  Log Message:
  -----------
  async: optimize aio_bh_poll

Avoid entering the slow path of qemu_lockcnt_dec_and_lock if
no bottom half has to be deleted.

Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 02b351d8466a26c93bf35ff8fd5c316e6aee8c0f
      
https://github.com/qemu/qemu/commit/02b351d8466a26c93bf35ff8fd5c316e6aee8c0f
  Author: Peter Maydell <address@hidden>
  Date:   2017-01-17 (Tue, 17 Jan 2017)

  Changed paths:
    M aio-posix.c
    M aio-win32.c
    M async.c
    M block/io.c
    A docs/lockcnt.txt
    M docs/multiple-iothreads.txt
    M include/block/aio.h
    M include/block/block.h
    M include/block/block_int.h
    A include/qemu/futex.h
    M include/qemu/thread.h
    M util/Makefile.objs
    A util/lockcnt.c
    M util/qemu-thread-posix.c
    M util/qemu-thread-win32.c
    M util/trace-events

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into 
staging

# gpg: Signature made Mon 16 Jan 2017 13:38:52 GMT
# gpg:                using RSA key 0x9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <address@hidden>"
# gpg:                 aka "Stefan Hajnoczi <address@hidden>"
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8

* remotes/stefanha/tags/block-pull-request:
  async: optimize aio_bh_poll
  aio: document locking
  aio-win32: remove walking_handlers, protecting AioHandler list with list_lock
  aio-posix: remove walking_handlers, protecting AioHandler list with list_lock
  aio: tweak walking in dispatch phase
  aio-posix: split aio_dispatch_handlers out of aio_dispatch
  qemu-thread: optimize QemuLockCnt with futexes on Linux
  aio: make ctx->list_lock a QemuLockCnt, subsuming ctx->walking_bh
  qemu-thread: introduce QemuLockCnt
  aio: rename bh_lock to list_lock
  block: get rid of bdrv_io_unplugged_begin/end

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/a8c611e1133f...02b351d8466a

reply via email to

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