From: Kevin Wolf <kwolf@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: ming.lei@canonical.com, pl@kamp.de, qemu-devel@nongnu.org,
stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 1/5] linux-aio: queue requests that cannot be submitted
Date: Tue, 16 Dec 2014 14:10:34 +0100 [thread overview]
Message-ID: <20141216131034.GA3301@noname.str.redhat.com> (raw)
In-Reply-To: <54901764.6050307@redhat.com>
Am 16.12.2014 um 12:28 hat Paolo Bonzini geschrieben:
>
>
> On 16/12/2014 12:07, Kevin Wolf wrote:
> > Am 11.12.2014 um 14:52 hat Paolo Bonzini geschrieben:
> >> Keep a queue of requests that were not submitted; pass them to
> >> the kernel when a completion is reported, unless the queue is
> >> plugged.
> >>
> >> The array of iocbs is rebuilt every time from scratch. This
> >> avoids keeping the iocbs array and list synchronized.
> >>
> >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> >
> > Just found out that in qemu-img bench, this patch seems to cost about
> > 5-8% for me.
>
> What execution? Queue depth=1?
My usual one:
$ ./qemu-img bench -t none -c 10000000 -n /dev/loop0
Sending 10000000 requests, 4096 bytes each, 64 in parallel
> For me it was noisy but I couldn't see a pessimization, and this patch
> should only add a handful of pointer accesses. Also, does perf point at
> a culprit, and does patch 5 restore some of the performance?
>
> Weird guess: TLB misses from accessing iocbs[0] on the stack (using a
> different coroutine stack every time)? Perf would report that as a
> large cost of this line:
>
> iocbs[len++] = &aiocb->iocb;
No, I can't seem to read much from the perf results. The cost seems to
be spread fairly evenly across ioq_submit(), with the exception of the
instruction after the call to io_submit(). Not sure why the next
instruction always takes so much time (independent of what it is), but
it has been this way before.
I was surprised to see a "rep stos" scoring at 10% in laio_submit(),
apparently io_prep_*() do a memset on the iocb. Not sure if that is
necessary, but again, it has always been this way.
Patch 5 doesn't restore the performance, which makes sense, as qemu-img
only sends single requests.
Kevin
next prev parent reply other threads:[~2014-12-16 13:10 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
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=20141216131034.GA3301@noname.str.redhat.com \
--to=kwolf@redhat.com \
--cc=ming.lei@canonical.com \
--cc=pbonzini@redhat.com \
--cc=pl@kamp.de \
--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 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).