All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Leonid Bloch <lbloch@janustech.com>
Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org,
	Max Reitz <mreitz@redhat.com>, Eric Blake <eblake@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v3 3/5] qcow2: Introduce an option for sufficient L2 cache for the entire image
Date: Wed, 25 Jul 2018 10:26:11 +0200	[thread overview]
Message-ID: <20180725082611.GA4879@localhost.localdomain> (raw)
In-Reply-To: <20180724200343.13733-4-lbloch@janustech.com>

Am 24.07.2018 um 22:03 hat Leonid Bloch geschrieben:
> An option "l2-cache-full" is introduced to automatically set the qcow2
> L2 cache to a sufficient value for covering the entire image. The memory
> overhead when using this option is not big (1 MB for each 8 GB of
> virtual image size with the default cluster size) and it can noticeably
> improve performance when using large images with frequent I/O.
> Previously, for this functionality the correct L2 cache size needed to
> be calculated manually or with a script, and then this size needed to be
> passed to the "l2-cache-size" option. Now it is sufficient to just pass
> the boolean "l2-cache-full" option.
> 
> Signed-off-by: Leonid Bloch <lbloch@janustech.com>

> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index d40d5ecc3b..c584059e23 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json
> @@ -2812,7 +2812,12 @@
>  #                         refcount block caches in bytes (since 2.2)
>  #
>  # @l2-cache-size:         the maximum size of the L2 table cache in
> -#                         bytes (since 2.2)
> +#                         bytes (mutually exclusive with l2-cache-full)
> +#                         (since 2.2)
> +#
> +# @l2-cache-full:         make the L2 table cache large enough to cover the
> +#                         entire image (mutually exclusive with l2-cache-size)
> +#                         (since 3.1)
>  #
>  # @l2-cache-entry-size:   the size of each entry in the L2 cache in
>  #                         bytes. It must be a power of two between 512
> @@ -2840,6 +2845,7 @@
>              '*overlap-check': 'Qcow2OverlapChecks',
>              '*cache-size': 'int',
>              '*l2-cache-size': 'int',
> +            '*l2-cache-full': 'bool',
>              '*l2-cache-entry-size': 'int',
>              '*refcount-cache-size': 'int',
>              '*cache-clean-interval': 'int',

Only looking at the external interface for now, I wonder whether it
would be nicer not to have two mutually exclusive options, but to make
l2-cache-size an alternate that can take either an int like before
(meaning the number of bytes) or a string/enum (with the only accepted
value "full" for now).

Another interesting question is whether 'full' shouldn't keep meaning
full throughout the lifetime of the BlockDriverState, i.e. should it
keep adapting to the new size when the image size changes?

Kevin

  reply	other threads:[~2018-07-25  8:26 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-24 20:03 [Qemu-devel] [PATCH v3 0/5] Introduction of l2-cache-full option for qcow2 images Leonid Bloch
2018-07-24 20:03 ` [Qemu-devel] [PATCH v3 1/5 for-3.0] A grammar fix Leonid Bloch
2018-07-24 21:00   ` Eric Blake
2018-07-25  8:49     ` Kevin Wolf
2018-07-25  9:08       ` Leonid Bloch
2018-07-24 20:03 ` [Qemu-devel] [PATCH v3 2/5 for-3.0] qcow2: Options' documentation fixes Leonid Bloch
2018-07-24 21:07   ` Eric Blake
2018-07-24 20:03 ` [Qemu-devel] [PATCH v3 3/5] qcow2: Introduce an option for sufficient L2 cache for the entire image Leonid Bloch
2018-07-25  8:26   ` Kevin Wolf [this message]
2018-07-25 12:22     ` Eric Blake
2018-07-25 12:32       ` Leonid Bloch
2018-07-25 13:32         ` Kevin Wolf
2018-07-25 15:23           ` Leonid Bloch
2018-07-25 15:53             ` Kevin Wolf
2018-07-26 12:24               ` Leonid Bloch
2018-07-26 14:42                 ` Kevin Wolf
2018-07-26 14:50                   ` Leonid Bloch
2018-07-26 19:43                     ` Leonid Bloch
2018-07-26 20:19                       ` Kevin Wolf
2018-07-26 21:08                         ` Leonid Bloch
2018-07-26 21:28                           ` Kevin Wolf
2018-07-26 21:51                             ` Leonid Bloch
2018-07-25 15:59             ` Daniel P. Berrangé
2018-07-24 20:03 ` [Qemu-devel] [PATCH v3 4/5] iotests: Add tests for the new l2-cache-full option Leonid Bloch
2018-07-24 20:03 ` [Qemu-devel] [PATCH v3 5/5] docs: Document the " Leonid Bloch
2018-07-24 21:22   ` Eric Blake

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=20180725082611.GA4879@localhost.localdomain \
    --to=kwolf@redhat.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.