From: Kevin Wolf <kwolf@redhat.com>
To: Peter Lieven <pl@kamp.de>
Cc: "Benoît Canet" <benoit.canet@irqsave.net>,
stefanha@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com,
ronniesahlberg@gmail.com, "Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests
Date: Tue, 23 Sep 2014 10:47:58 +0200 [thread overview]
Message-ID: <20140923084758.GA3871@noname.str.redhat.com> (raw)
In-Reply-To: <540DC30B.2040408@kamp.de>
Am 08.09.2014 um 16:54 hat Peter Lieven geschrieben:
> On 08.09.2014 16:42, Paolo Bonzini wrote:
> >Il 08/09/2014 16:35, Peter Lieven ha scritto:
> >>Whats your opinion changed the max_xfer_len to 0xffff regardsless
> >>of use_16_for_rw in iSCSI?
> >If you implemented request splitting in the block layer, it would be
> >okay to force max_xfer_len to 0xffff.
>
> Unfortunately, I currently have no time for that. It will include some shuffling with
> qiovs that has to be properly tested.
>
> Regarding iSCSI: In fact currently the limit is 0xffff for all iSCSI Targets < 2TB.
> So I thought that its not obvious at all why a > 2TB target can handle bigger requests.
>
> To the root cause of this patch multiwrite_merge I still have some thoughts:
> - why are we merging requests for raw (especially host devices and/or iSCSI?)
> The original patch from Kevin was to mitigate a QCOW2 performance regression.
The problem wasn't in qcow2, though, it just became more apparent there
because lots of small requests are deadly to performance during cluster
allocation. Installation simply took ages compared to IDE. If you do a
real benchmark, you'll probably see (smaller) differences with raw, too.
The core problem is virtio-blk getting much smaller requests. IIRC, I
got an average of 128k-512k per request for IDE and something as poor as
4k-32k for virtio-blk. If I read this thread correctly, you're saying
that this is still the case. I suspect there is something wrong with the
guest driver, but somebody would have to dig into that.
> For iSCSI the qiov concats are destroying all the zerocopy efforts we made.
If this is true, it just means that the iscsi driver sucks for vectored
I/O and needs to be fixed.
> - should we only merge requests within the same cluster?
Does it hurt to merge everything we can? The block driver needs to be
able to take things apart anyway, the large request could come from
somewhere else (guest, block job, builtin NBD server, etc.)
> - why is there no multiread_merge?
Because nobody implemented it. :-)
As I said above, writes hurt a lot because of qcow2 cluster allocation.
Reads are probably losing some performance as well (someone would need
to check this), but processing them separately isn't quite as painful.
Kevin
next prev parent reply other threads:[~2014-09-23 8:48 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-05 16:51 [Qemu-devel] [PATCH 0/4] introduce max_transfer_length Peter Lieven
2014-09-05 16:51 ` [Qemu-devel] [PATCH 1/4] BlockLimits: " Peter Lieven
2014-09-05 16:51 ` [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests Peter Lieven
2014-09-08 13:44 ` Benoît Canet
2014-09-08 13:49 ` Paolo Bonzini
2014-09-08 13:56 ` Peter Lieven
2014-09-08 13:58 ` Paolo Bonzini
2014-09-08 14:35 ` Peter Lieven
2014-09-08 14:42 ` Paolo Bonzini
2014-09-08 14:54 ` Peter Lieven
2014-09-23 8:47 ` Kevin Wolf [this message]
2014-09-23 8:55 ` Peter Lieven
2014-09-23 9:09 ` Kevin Wolf
2014-09-08 15:13 ` ronnie sahlberg
2014-09-08 15:15 ` Paolo Bonzini
2014-09-08 15:18 ` Peter Lieven
2014-09-08 15:27 ` Paolo Bonzini
2014-09-08 16:18 ` Peter Lieven
2014-09-08 16:29 ` Paolo Bonzini
2014-09-12 11:43 ` Peter Lieven
2014-09-18 14:12 ` Paolo Bonzini
2014-09-18 14:16 ` Peter Lieven
2014-09-18 14:17 ` Paolo Bonzini
2014-09-18 22:57 ` Peter Lieven
2014-09-08 15:16 ` Peter Lieven
2014-09-05 16:51 ` [Qemu-devel] [PATCH 3/4] block/iscsi: set max_transfer_length Peter Lieven
2014-09-05 16:51 ` [Qemu-devel] [PATCH 4/4] block: avoid creating oversized writes in multiwrite_merge Peter Lieven
2014-09-18 14:13 ` Paolo Bonzini
2014-09-18 22:56 ` Peter Lieven
2014-09-19 13:33 ` Paolo Bonzini
2014-09-22 9:43 ` Peter Lieven
2014-09-22 19:06 ` Paolo Bonzini
2014-09-23 6:15 ` Peter Lieven
2014-09-23 8:59 ` Kevin Wolf
2014-09-23 9:04 ` Peter Lieven
2014-09-23 9:32 ` Peter Lieven
2014-09-23 9:47 ` Kevin Wolf
2014-09-23 9:52 ` Peter Lieven
2014-09-23 10:05 ` Kevin Wolf
2014-09-30 7:26 ` Peter Lieven
2014-09-30 8:03 ` Kevin Wolf
2014-09-05 17:05 ` [Qemu-devel] [PATCH 0/4] introduce max_transfer_length ronnie sahlberg
2014-09-05 19:52 ` Peter Lieven
2014-09-05 21:22 ` ronnie sahlberg
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=20140923084758.GA3871@noname.str.redhat.com \
--to=kwolf@redhat.com \
--cc=benoit.canet@irqsave.net \
--cc=mreitz@redhat.com \
--cc=pbonzini@redhat.com \
--cc=pl@kamp.de \
--cc=qemu-devel@nongnu.org \
--cc=ronniesahlberg@gmail.com \
--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.