kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] kvm tools: Support native vectored AIO
@ 2011-10-30 17:35 Sasha Levin
  2011-10-30 17:35 ` [PATCH 01/11] kvm tools: Switch to using an enum for disk image types Sasha Levin
                   ` (10 more replies)
  0 siblings, 11 replies; 18+ messages in thread
From: Sasha Levin @ 2011-10-30 17:35 UTC (permalink / raw)
  To: penberg; +Cc: kvm, mingo, asias.hejun, gorcunov, Sasha Levin

This patch set adds support for native vectored AIO ops. Instead of using our
own thread pool for queueing io ops, we use the kernel.

Numbers - short story: Overall increase of at least 10%, with sequential
ops benefiting the most.

Numbers - long story:

Before:
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   2     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
512              1G   550  97 26638   7 25050   4  2942  91 339188  35  1711  68
Latency             40602us   12269ms    2755ms   27333us     119ms   77816us
Version  1.96       ------Sequential Create------ --------Random Create--------
512                 -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 12172  22 +++++ +++ 23771  34 20209  36 +++++ +++ 22181  33
Latency               153ms     566us     571us     204us      56us     624us
1.96,1.96,512,2,1319996851,1G,,550,97,26638,7,25050,4,2942,91,339188,35,1711,68,16,,,,,12172,22,+++++,+++,23771,34,20209,36,+++++,+++,22181,33,40602us,12269ms,2755ms,27333us,119ms,77816us,153ms,566us,571us,204us,56us,624us

After:
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   2     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
tux            512M   565  96 49307  19 33464   6  3270  99 923539  57  2599  64
Latency             15285us     240ms    2496ms    7478us    5586us    2878ms
Version  1.96       ------Sequential Create------ --------Random Create--------
tux                 -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 26992  48 +++++ +++ 27018  38 25618  45 +++++ +++ 24272  34
Latency              1145us    1311us    1708us     408us     186us     283us
1.96,1.96,tux,2,1319997274,512M,,565,96,49307,19,33464,6,3270,99,923539,57,2599,64,16,,,,,26992,48,+++++,+++,27018,38,25618,45,+++++,+++,24272,34,15285us,240ms,2496ms,7478us,5586us,2878ms,1145us,1311us,1708us,408us,186us,283us

I'd be happy if someone could run more benchmarks, as these ones looks very
optimistic, but I kept getting similar results over and over.


Sasha Levin (11):
  kvm tools: Switch to using an enum for disk image types
  kvm tools: Hold a copy of ops struct inside disk_image
  kvm tools: Remove the non-iov interface from disk image ops
  kvm tools: Modify disk ops usage
  kvm tools: Modify behaviour on missing ops ptr
  kvm tools: Add optional callback on disk op completion
  kvm tools: Remove qcow nowrite function
  kvm tools: Split io request from completion
  kvm tools: Hook virtio-blk completion to disk op completion
  kvm tools: Add aio read write functions
  kvm tools: Use native vectored AIO in virtio-blk

 tools/kvm/Makefile                 |    1 +
 tools/kvm/disk/core.c              |  116 +++++++++++++++++++---------------
 tools/kvm/disk/qcow.c              |   58 ++++++++++++++---
 tools/kvm/disk/raw.c               |   87 +++++++++++++++++--------
 tools/kvm/include/kvm/disk-image.h |   50 ++++++++-------
 tools/kvm/include/kvm/read-write.h |    6 ++
 tools/kvm/include/kvm/virtio-blk.h |    1 +
 tools/kvm/read-write.c             |   24 +++++++
 tools/kvm/virtio/blk.c             |  122 ++++++++++++++++++++++++------------
 9 files changed, 312 insertions(+), 153 deletions(-)

-- 
1.7.7.1


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

end of thread, other threads:[~2011-11-01 11:52 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-30 17:35 [PATCH 00/11] kvm tools: Support native vectored AIO Sasha Levin
2011-10-30 17:35 ` [PATCH 01/11] kvm tools: Switch to using an enum for disk image types Sasha Levin
2011-10-30 17:35 ` [PATCH 02/11] kvm tools: Hold a copy of ops struct inside disk_image Sasha Levin
2011-11-01  6:44   ` Pekka Enberg
2011-11-01 11:16     ` Sasha Levin
2011-11-01 11:30       ` Pekka Enberg
2011-11-01 11:43         ` Sasha Levin
2011-11-01 11:52           ` Pekka Enberg
2011-10-30 17:35 ` [PATCH 03/11] kvm tools: Remove the non-iov interface from disk image ops Sasha Levin
2011-10-30 17:35 ` [PATCH 04/11] kvm tools: Modify disk ops usage Sasha Levin
2011-10-30 17:35 ` [PATCH 05/11] kvm tools: Modify behaviour on missing ops ptr Sasha Levin
2011-10-30 17:35 ` [PATCH 06/11] kvm tools: Add optional callback on disk op completion Sasha Levin
2011-10-30 17:35 ` [PATCH 07/11] kvm tools: Remove qcow nowrite function Sasha Levin
2011-10-30 17:35 ` [PATCH 08/11] kvm tools: Split io request from completion Sasha Levin
2011-10-31 10:42   ` Asias He
2011-10-30 17:35 ` [PATCH 09/11] kvm tools: Hook virtio-blk completion to disk op completion Sasha Levin
2011-10-30 17:35 ` [PATCH 10/11] kvm tools: Add aio read write functions Sasha Levin
2011-10-30 17:35 ` [PATCH 11/11] kvm tools: Use native vectored AIO in virtio-blk Sasha Levin

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).