All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/2] Fix slow startup with many disks
@ 2015-06-17 10:37 Alexander Yarygin
  2015-06-17 10:37 ` [Qemu-devel] [PATCH v3 1/2] block-backend: Introduce blk_drain() Alexander Yarygin
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Alexander Yarygin @ 2015-06-17 10:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, qemu-block, Alexander Yarygin, Ekaterina Tumanova,
	Christian Borntraeger, Stefan Hajnoczi, Cornelia Huck,
	Paolo Bonzini

Changes in v3:
   - Added aio_context_acquire/aio_context_release around blk_drain() in
     "virtio-blk: Use blk_drain() to drain IO requests" + updated commit
     description

Please update Cc: qemu-stable@ if it necessarily.

Changes in v2:
    - Patch "block-backend: Introduce blk_drain() and replace blk_drain_all()"
      splitted to two.
    - blk_drain() moved to above virtio_blk_data_plane_stop().

Previous thread:
http://lists.gnu.org/archive/html/qemu-devel/2015-06/msg02786.html

During reset the aio_poll() function is called at least amount_of_disks^2 times:

for_each disk
    virtio_blk_reset()
        bdrv_drain_all()
                for_each disk
                         aio_poll()

For example, startup with 1000 disks takes over 13 minutes.

Patches 1 and 2 removes inner loop by using bdrv_drain() instead
of bdrv_drain_all(). bdrv_drain() works on one disk at time.

Since bdrv_drain_all() is still called in other places, patch 3 optimizes
it for cases, where there are more disks than iothreads.

Thanks.

Alexander Yarygin (2):
  block-backend: Introduce blk_drain()
  virtio-blk: Use blk_drain() to drain IO requests

 block/block-backend.c          |  5 +++++
 hw/block/virtio-blk.c          | 15 ++++++++++-----
 include/sysemu/block-backend.h |  1 +
 3 files changed, 16 insertions(+), 5 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-07-02  8:22 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-17 10:37 [Qemu-devel] [PATCH v3 0/2] Fix slow startup with many disks Alexander Yarygin
2015-06-17 10:37 ` [Qemu-devel] [PATCH v3 1/2] block-backend: Introduce blk_drain() Alexander Yarygin
2015-06-17 10:37 ` [Qemu-devel] [PATCH v3 2/2] virtio-blk: Use blk_drain() to drain IO requests Alexander Yarygin
2015-06-26  9:26   ` Markus Armbruster
2015-06-26 14:00     ` Alexander Yarygin
2015-06-29  6:10       ` Markus Armbruster
2015-06-30 13:52         ` Stefan Hajnoczi
2015-07-01 15:52           ` Markus Armbruster
2015-07-02  8:21             ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-06-18 15:53 ` [Qemu-devel] [PATCH v3 0/2] Fix slow startup with many disks Stefan Hajnoczi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.