qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/5] linux-aio: rewrite and simplify queuing code
@ 2014-12-11 13:52 Paolo Bonzini
  2014-12-11 13:52 ` [Qemu-devel] [PATCH v2 1/5] linux-aio: queue requests that cannot be submitted Paolo Bonzini
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Paolo Bonzini @ 2014-12-11 13:52 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, ming.lei, pl, stefanha

This series rewrites the io_submit code to avoid having to
synchronize the iocbs in two places (qemu_laiocb and LaioQueue).
Instead, the queue of pending I/O requests is kept in a list.

This fixes the problems with io_submit doing partial submissions
or failing with EAGAIN, without complicating the code.  The bug is
shown by "qemu-img bench -n -t none -s 65536 -d 1024 -c 100000"
pretty much instantly.

Paolo

v1->v2: add patch 4, and fix QSIMPLEQ_SPLIT_AFTER

Paolo Bonzini (5):
  linux-aio: queue requests that cannot be submitted
  linux-aio: track whether the queue is blocked
  linux-aio: rename LaioQueue idx field to "n"
  linux-aio: drop return code from laio_io_unplug and ioq_submit
  linux-aio: simplify removal of completed iocbs from the list

 block/linux-aio.c    | 99 ++++++++++++++++++++++++----------------------------
 block/raw-aio.h      |  2 +-
 include/qemu/queue.h | 11 ++++++
 3 files changed, 58 insertions(+), 54 deletions(-)

-- 
2.1.0

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

end of thread, other threads:[~2014-12-17 15:03 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-11 13:52 [Qemu-devel] [PATCH v2 0/5] linux-aio: rewrite and simplify queuing code Paolo Bonzini
2014-12-11 13:52 ` [Qemu-devel] [PATCH v2 1/5] linux-aio: queue requests that cannot be submitted Paolo Bonzini
2014-12-16 11:07   ` Kevin Wolf
2014-12-16 11:28     ` Paolo Bonzini
2014-12-16 13:10       ` Kevin Wolf
2014-12-16 18:28         ` Paolo Bonzini
2014-12-16 20:26           ` Paolo Bonzini
2014-12-17 12:34             ` Paolo Bonzini
2014-12-17 15:03               ` Paolo Bonzini
2014-12-11 13:52 ` [Qemu-devel] [PATCH v2 2/5] linux-aio: track whether the queue is blocked Paolo Bonzini
2014-12-11 13:52 ` [Qemu-devel] [PATCH v2 3/5] linux-aio: rename LaioQueue idx field to "n" Paolo Bonzini
2014-12-11 13:52 ` [Qemu-devel] [PATCH v2 4/5] linux-aio: drop return code from laio_io_unplug and ioq_submit Paolo Bonzini
2014-12-11 13:52 ` [Qemu-devel] [PATCH v2 5/5] linux-aio: simplify removal of completed iocbs from the list Paolo Bonzini
2014-12-11 14:49 ` [Qemu-devel] [PATCH v2 0/5] linux-aio: rewrite and simplify queuing code Kevin Wolf
2014-12-12 17:07 ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).