All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Fam Zheng <famz@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Ming Lei <ming.lei@canonical.com>,
	qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v4 3/3] dataplane: submit I/O as a batch
Date: Thu, 3 Jul 2014 12:18:57 +0200	[thread overview]
Message-ID: <20140703101857.GF4322@noname.redhat.com> (raw)
In-Reply-To: <53B5272E.10703@redhat.com>

Am 03.07.2014 um 11:49 hat Paolo Bonzini geschrieben:
> Il 03/07/2014 11:44, Kevin Wolf ha scritto:
> >Am 02.07.2014 um 14:18 hat Ming Lei geschrieben:
> >>Before commit 580b6b2aa2(dataplane: use the QEMU block
> >>layer for I/O), dataplane for virtio-blk submits block
> >>I/O as a batch.
> >>
> >>This commit 580b6b2aa2 replaces the custom linux AIO
> >>implementation(including submit I/O as a batch) with QEMU
> >>block layer, but this commit causes ~40% throughput regression
> >>on virtio-blk performance, and removing submitting I/O
> >>as a batch is one of the causes.
> >>
> >>This patch applies the newly introduced bdrv_io_plug() and
> >>bdrv_io_unplug() interfaces to support submitting I/O
> >>at batch for Qemu block layer, and in my test, the change
> >>can improve throughput by ~30% with 'aio=native'.
> >>
> >>Following my fio test script:
> >>
> >>	[global]
> >>	direct=1
> >>	size=4G
> >>	bsrange=4k-4k
> >>	timeout=40
> >>	numjobs=4
> >>	ioengine=libaio
> >>	iodepth=64
> >>	filename=/dev/vdc
> >>	group_reporting=1
> >>
> >>	[f]
> >>	rw=randread
> >>
> >>Result on one of my small machine(host: x86_64, 2cores, 4thread, guest: 4cores):
> >>	- qemu master: 59K IOPS
> >>	- qemu master with these patches: 81K IOPS
> >>	- 2.0.0 release(dataplane using custom linux aio): 104K IOPS
> >>
> >>Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
> >>Signed-off-by: Ming Lei <ming.lei@canonical.com>
> >
> >Reviewing this one doesn't make sense because commit b002254d
> >('virtio-blk: Unify {non-,}dataplane's request handlings') removes the
> >patched code. You need to patch common virtio-blk code now (which should
> >improve non-dataplane virtio-blk as well).
> 
> Actually no, the second and third hunk still apply.  The patch you
> mentioned unifies request processing, but the loops that fetches
> requests from the virtqueue are still separate.  This is because
> virtio-blk-dataplane still uses the vring API instead of the generic
> virtio API.  address_space_map/unmap is not thread-safe yet, vring
> avoids it.
> 
> Regarding the first hunk, it is not needed at all.

Right, I only saw the merge conflict on the first hunk and gave up. I
didn't even look at the unapplied patch to see that it's wrong and
should be dropped indeed.

Kevin

  reply	other threads:[~2014-07-03 10:19 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-02 12:18 [Qemu-devel] [PATCH v4 0/3] linux-aio: introduce submit I/O as a batch Ming Lei
2014-07-02 12:18 ` [Qemu-devel] [PATCH v4 1/3] block: block: introduce APIs for submitting IO as Ming Lei
2014-07-02 12:46   ` Eric Blake
2014-07-03  9:40   ` Kevin Wolf
2014-07-02 12:18 ` [Qemu-devel] [PATCH v4 2/3] linux-aio: implement io plug, unplug and flush io queue Ming Lei
2014-07-03  9:40   ` Kevin Wolf
2014-07-03  9:51     ` Ming Lei
2014-07-03 10:04       ` Paolo Bonzini
2014-07-03 10:45         ` Ming Lei
2014-07-03 10:50           ` Paolo Bonzini
2014-07-03 11:31             ` Ming Lei
2014-07-03 10:22       ` Kevin Wolf
2014-07-03 10:24         ` Ming Lei
2014-07-03 10:30           ` Kevin Wolf
2014-07-03 12:24   ` Stefan Hajnoczi
2014-07-04  9:18     ` Ming Lei
2014-07-04  9:21       ` Ming Lei
2014-07-02 12:18 ` [Qemu-devel] [PATCH v4 3/3] dataplane: submit I/O as a batch Ming Lei
2014-07-03  9:44   ` Kevin Wolf
2014-07-03  9:49     ` Paolo Bonzini
2014-07-03 10:18       ` Kevin Wolf [this message]
2014-07-03 12:35   ` Stefan Hajnoczi
2014-07-03 12:37   ` Stefan Hajnoczi
2014-07-03 12:47     ` Ming Lei
2014-07-03  9:25 ` [Qemu-devel] [PATCH v4 0/3] linux-aio: introduce " Kevin Wolf
2014-07-03 12:36 ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140703101857.GF4322@noname.redhat.com \
    --to=kwolf@redhat.com \
    --cc=famz@redhat.com \
    --cc=ming.lei@canonical.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.