The default cache-clean-interval is set to 30 seconds, in order to lower
the overhead of the qcow2 caches (before the default was 0, i.e.
disabled).
Signed-off-by: Leonid Bloch <lbloch@janustech.com>
---
block/qcow2.c | 2 +-
block/qcow2.h | 1 +
docs/qcow2-cache.txt | 4 ++--
qapi/block-core.json | 3 ++-
qemu-options.hx | 2 +-
5 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/block/qcow2.c b/block/qcow2.c
index f60cb92169..453a6377ac 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -941,7 +941,7 @@ static int qcow2_update_options_prepare(BlockDriverState *bs,
/* New interval for cache cleanup timer */
r->cache_clean_interval =
qemu_opt_get_number(opts, QCOW2_OPT_CACHE_CLEAN_INTERVAL,
- s->cache_clean_interval);
+ DEFAULT_CACHE_CLEAN_INTERVAL);
#ifndef CONFIG_LINUX
if (r->cache_clean_interval != 0) {
error_setg(errp, QCOW2_OPT_CACHE_CLEAN_INTERVAL
diff --git a/block/qcow2.h b/block/qcow2.h
index d77a31d932..96a2808685 100644
--- a/block/qcow2.h
+++ b/block/qcow2.h
@@ -77,6 +77,7 @@
#define DEFAULT_CLUSTER_SIZE 65536
+#define DEFAULT_CACHE_CLEAN_INTERVAL 30 /* seconds */
#define QCOW2_OPT_LAZY_REFCOUNTS "lazy-refcounts"
#define QCOW2_OPT_DISCARD_REQUEST "pass-discard-request"
diff --git a/docs/qcow2-cache.txt b/docs/qcow2-cache.txt
index c7625cdeb3..c795febbdc 100644
--- a/docs/qcow2-cache.txt
+++ b/docs/qcow2-cache.txt
@@ -202,8 +202,8 @@ This example removes all unused cache entries every 15 minutes:
-drive file=hd.qcow2,cache-clean-interval=900
-If unset, the default value for this parameter is 0 and it disables
-this feature.
+If unset, the default value for this parameter is 30. Setting it to 0
+disables this feature.
Note that this functionality currently relies on the MADV_DONTNEED
argument for madvise() to actually free the memory. This is a
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 5b9084a394..f98cd14740 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -2830,7 +2830,8 @@
#
# @cache-clean-interval: clean unused entries in the L2 and refcount
# caches. The interval is in seconds. The default value
-# is 0 and it disables this feature (since 2.5)
+# is 30. Setting 0 disables this feature. (since 2.5)
+#
# @encrypt: Image decryption options. Mandatory for
# encrypted images, except when doing a metadata-only
# probe of the image. (since 2.10)
diff --git a/qemu-options.hx b/qemu-options.hx
index d6e15b2f06..a0e0763f71 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -767,7 +767,7 @@ it which is not used for the L2 cache)
@item cache-clean-interval
Clean unused entries in the L2 and refcount caches. The interval is in seconds.
-The default value is 0 and it disables this feature.
+The default value is 30. Setting it to 0 disables this feature.
@item pass-discard-request
Whether discard requests to the qcow2 device should be forwarded to the data
--
2.17.1
On Wed 08 Aug 2018 09:10:50 AM CEST, Leonid Bloch wrote: > The default cache-clean-interval is set to 30 seconds, in order to lower > the overhead of the qcow2 caches (before the default was 0, i.e. > disabled). > > Signed-off-by: Leonid Bloch <lbloch@janustech.com> Reviewed-by: Alberto Garcia <berto@igalia.com> > +#define DEFAULT_CACHE_CLEAN_INTERVAL 30 /* seconds */ I wonder if it shouldn't be a bit higher, though. Isn't 30 seconds too low for a default? Berto
On 08/08/2018 02:47 PM, Alberto Garcia wrote: > On Wed 08 Aug 2018 09:10:50 AM CEST, Leonid Bloch wrote: >> The default cache-clean-interval is set to 30 seconds, in order to lower >> the overhead of the qcow2 caches (before the default was 0, i.e. >> disabled). >> >> Signed-off-by: Leonid Bloch <lbloch@janustech.com> > > Reviewed-by: Alberto Garcia <berto@igalia.com> > >> +#define DEFAULT_CACHE_CLEAN_INTERVAL 30 /* seconds */ > > I wonder if it shouldn't be a bit higher, though. Isn't 30 seconds too > low for a default? I also had this thought. What would you suggest? Leonid. > > Berto >
On Wed 08 Aug 2018 01:49:08 PM CEST, Leonid Bloch wrote: > On 08/08/2018 02:47 PM, Alberto Garcia wrote: >> On Wed 08 Aug 2018 09:10:50 AM CEST, Leonid Bloch wrote: >>> The default cache-clean-interval is set to 30 seconds, in order to lower >>> the overhead of the qcow2 caches (before the default was 0, i.e. >>> disabled). >>> >>> Signed-off-by: Leonid Bloch <lbloch@janustech.com> >> >> Reviewed-by: Alberto Garcia <berto@igalia.com> >> >>> +#define DEFAULT_CACHE_CLEAN_INTERVAL 30 /* seconds */ >> >> I wonder if it shouldn't be a bit higher, though. Isn't 30 seconds too >> low for a default? > > I also had this thought. What would you suggest? I don't know, 5 minutes at least. It should discard cache entries that haven't been used in a while. It my opinion the default should be for saving memory in VMs that are mostly idle. If the VM is more or less active I wouldn't want to clean cache entries that are used frequently. Berto
On 08/08/2018 02:57 PM, Alberto Garcia wrote: > On Wed 08 Aug 2018 01:49:08 PM CEST, Leonid Bloch wrote: >> On 08/08/2018 02:47 PM, Alberto Garcia wrote: >>> On Wed 08 Aug 2018 09:10:50 AM CEST, Leonid Bloch wrote: >>>> The default cache-clean-interval is set to 30 seconds, in order to lower >>>> the overhead of the qcow2 caches (before the default was 0, i.e. >>>> disabled). >>>> >>>> Signed-off-by: Leonid Bloch <lbloch@janustech.com> >>> >>> Reviewed-by: Alberto Garcia <berto@igalia.com> >>> >>>> +#define DEFAULT_CACHE_CLEAN_INTERVAL 30 /* seconds */ >>> >>> I wonder if it shouldn't be a bit higher, though. Isn't 30 seconds too >>> low for a default? >> >> I also had this thought. What would you suggest? > > I don't know, 5 minutes at least. It should discard cache entries that > haven't been used in a while. > > It my opinion the default should be for saving memory in VMs that are > mostly idle. If the VM is more or less active I wouldn't want to clean > cache entries that are used frequently. How about 10 minutes? Leonid. > > Berto >
On Wed 08 Aug 2018 02:17:47 PM CEST, Leonid Bloch wrote: > On 08/08/2018 02:57 PM, Alberto Garcia wrote: >> On Wed 08 Aug 2018 01:49:08 PM CEST, Leonid Bloch wrote: >>> On 08/08/2018 02:47 PM, Alberto Garcia wrote: >>>> On Wed 08 Aug 2018 09:10:50 AM CEST, Leonid Bloch wrote: >>>>> The default cache-clean-interval is set to 30 seconds, in order to lower >>>>> the overhead of the qcow2 caches (before the default was 0, i.e. >>>>> disabled). >>>>> >>>>> Signed-off-by: Leonid Bloch <lbloch@janustech.com> >>>> >>>> Reviewed-by: Alberto Garcia <berto@igalia.com> >>>> >>>>> +#define DEFAULT_CACHE_CLEAN_INTERVAL 30 /* seconds */ >>>> >>>> I wonder if it shouldn't be a bit higher, though. Isn't 30 seconds too >>>> low for a default? >>> >>> I also had this thought. What would you suggest? >> >> I don't know, 5 minutes at least. It should discard cache entries that >> haven't been used in a while. >> >> It my opinion the default should be for saving memory in VMs that are >> mostly idle. If the VM is more or less active I wouldn't want to clean >> cache entries that are used frequently. > > How about 10 minutes? Sounds good to me. Berto
© 2016 - 2025 Red Hat, Inc.