All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Alberto Garcia <berto@igalia.com>
Cc: Leonid Bloch <lbloch@janustech.com>,
	qemu-devel@nongnu.org, qemu-block@nongnu.org,
	Max Reitz <mreitz@redhat.com>, Eric Blake <eblake@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 0/6] qcow2: Make the L2 cache cover the whole image by default
Date: Mon, 6 Aug 2018 13:30:33 +0200	[thread overview]
Message-ID: <20180806113033.GC4631@localhost.localdomain> (raw)
In-Reply-To: <w51sh3roisi.fsf@maestria.local.igalia.com>

Am 06.08.2018 um 13:07 hat Alberto Garcia geschrieben:
> On Mon 06 Aug 2018 12:45:20 PM CEST, Kevin Wolf wrote:
> > Am 06.08.2018 um 09:47 hat Alberto Garcia geschrieben:
> >> On Fri 03 Aug 2018 04:55:42 PM CEST, Kevin Wolf wrote:
> >> > By the way, weren't you working on subclusters a while ago? How did
> >> > that go? Because I think those would enable us to use larger
> >> > cluster sizes and therefore reduce the metadata sizes as well.
> >> 
> >> I had a working prototype, but the changes to both the code and the
> >> on-disk format were not trivial. I would need to re-evaluate its
> >> performance impact after all the changes that we have had since then,
> >> and then see if it's worth trying again.
> >> 
> >> I suppose that the main benefit of having subclusters is that
> >> allocations are much faster. Everything else remains more or less the
> >> same, and in particular you can already use larger clusters if you
> >> want to reduce the metadata sizes. Plus, with the l2-cache-entry-size
> >> option you can already solve some of the problems of having large
> >> clusters.
> >
> > Yes, indeed, subclusters are about making COW less painful (or getting
> > rid of it altogether). Doing COW for full 2 MB when the guest updates
> > 4k is just a bit over the top and I think it slows down initial writes
> > seriously. I haven't benchmarked things in a while, though.
> 
> Me neither, I think the most recent ones that I have are from last year:
> 
> https://lists.gnu.org/archive/html/qemu-devel/2017-04/msg01033.html
> 
> Since then we changed the cow algorithm to do only 2 operations instead
> of 5, so that can affect the best case scenario.

I can't find the numbers from the COW request merging any more, but I
remember that when I tested the approach, the result was something like
this: Merging the write requests pretty much got rid of any measurable
COW overhead without a backing file, but as soon as you have to read
from the backing file, the saved work isn't very significant any more
and the cost of the read dominates.

So when you test subclusters, be sure to not only test an empty
standalone qcow2 image, but also a newly taken snapshot that has to
COW from the backing file a lot.

> > While reasonable cache settings and potentially also avoiding
> > fragmentation are probably more important overall, I don't think we
> > can completely ignore initial writes. They are part of the cost of
> > snapshots, they are what people are seeing first and also what
> > benchmarks generally show.
> 
> If I have some time I could try to test the patches again on top of
> QEMU 3.0 and see what happens.

That sounds good.

Kevin

  reply	other threads:[~2018-08-06 11:30 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-29 21:27 [Qemu-devel] [PATCH 0/6] qcow2: Make the L2 cache cover the whole image by default Leonid Bloch
2018-07-29 21:27 ` [Qemu-devel] [PATCH 1/6 for-3.0] Update .gitignore Leonid Bloch
2018-07-30 15:40   ` Eric Blake
2018-07-30 15:43     ` Eric Blake
2018-07-29 21:27 ` [Qemu-devel] [PATCH 2/6 for-3.0] qcow2: A grammar fix in conflicting cache sizing error message Leonid Bloch
2018-07-29 21:27 ` [Qemu-devel] [PATCH 3/6 for-3.0] qcow2: Options' documentation fixes Leonid Bloch
2018-08-03 11:27   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2018-08-04 11:52     ` Leonid Bloch
2018-07-29 21:27 ` [Qemu-devel] [PATCH 4/6] qcow2: Update total_sectors when resizing the image Leonid Bloch
2018-07-30  9:43   ` Kevin Wolf
2018-07-30 11:41     ` Leonid Bloch
2018-07-30 12:28       ` Kevin Wolf
2018-08-03 11:56         ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2018-07-29 21:27 ` [Qemu-devel] [PATCH 5/6] qcow2: Make the default L2 cache sufficient to cover the entire image Leonid Bloch
2018-07-29 21:27 ` [Qemu-devel] [PATCH 6/6] qcow2: Resize the cache upon image resizing Leonid Bloch
2018-08-03 12:42   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2018-08-04 11:53     ` Leonid Bloch
2018-07-30 10:55 ` [Qemu-devel] [PATCH 0/6] qcow2: Make the L2 cache cover the whole image by default Kevin Wolf
2018-07-30 12:13   ` Leonid Bloch
2018-07-30 12:44     ` Kevin Wolf
2018-08-03 13:37   ` Alberto Garcia
2018-08-03 14:55     ` Kevin Wolf
2018-08-06  7:47       ` Alberto Garcia
2018-08-06 10:45         ` Kevin Wolf
2018-08-06 11:07           ` Alberto Garcia
2018-08-06 11:30             ` Kevin Wolf [this message]
2018-08-06 11:41               ` Alberto Garcia
2018-08-03  7:38 ` Kevin Wolf
2018-08-04 11:48   ` Leonid Bloch

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=20180806113033.GC4631@localhost.localdomain \
    --to=kwolf@redhat.com \
    --cc=berto@igalia.com \
    --cc=eblake@redhat.com \
    --cc=lbloch@janustech.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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.