qcow2: Set the default cache-clean-interval to 10 minutes

The default cache-clean-interval is set to 10 minutes, in order to lower
the overhead of the qcow2 caches (before the default was 0, i.e.
disabled).

* For non-Linux platforms the default is kept at 0, because
  cache-clean-interval is not supported there yet.

Signed-off-by: Leonid Bloch <lbloch@janustech.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Leonid Bloch 2018-09-26 19:04:46 +03:00 committed by Kevin Wolf
parent 45b4949c7b
commit e957b50b8d
5 changed files with 9 additions and 6 deletions

View File

@ -944,7 +944,7 @@ static int qcow2_update_options_prepare(BlockDriverState *bs,
/* New interval for cache cleanup timer */ /* New interval for cache cleanup timer */
r->cache_clean_interval = r->cache_clean_interval =
qemu_opt_get_number(opts, QCOW2_OPT_CACHE_CLEAN_INTERVAL, qemu_opt_get_number(opts, QCOW2_OPT_CACHE_CLEAN_INTERVAL,
s->cache_clean_interval); DEFAULT_CACHE_CLEAN_INTERVAL);
#ifndef CONFIG_LINUX #ifndef CONFIG_LINUX
if (r->cache_clean_interval != 0) { if (r->cache_clean_interval != 0) {
error_setg(errp, QCOW2_OPT_CACHE_CLEAN_INTERVAL error_setg(errp, QCOW2_OPT_CACHE_CLEAN_INTERVAL

View File

@ -76,13 +76,15 @@
#ifdef CONFIG_LINUX #ifdef CONFIG_LINUX
#define DEFAULT_L2_CACHE_MAX_SIZE S_32MiB #define DEFAULT_L2_CACHE_MAX_SIZE S_32MiB
#define DEFAULT_CACHE_CLEAN_INTERVAL 600 /* seconds */
#else #else
#define DEFAULT_L2_CACHE_MAX_SIZE S_8MiB #define DEFAULT_L2_CACHE_MAX_SIZE S_8MiB
/* Cache clean interval is currently available only on Linux, so must be 0 */
#define DEFAULT_CACHE_CLEAN_INTERVAL 0
#endif #endif
#define DEFAULT_CLUSTER_SIZE S_64KiB #define DEFAULT_CLUSTER_SIZE S_64KiB
#define QCOW2_OPT_LAZY_REFCOUNTS "lazy-refcounts" #define QCOW2_OPT_LAZY_REFCOUNTS "lazy-refcounts"
#define QCOW2_OPT_DISCARD_REQUEST "pass-discard-request" #define QCOW2_OPT_DISCARD_REQUEST "pass-discard-request"
#define QCOW2_OPT_DISCARD_SNAPSHOT "pass-discard-snapshot" #define QCOW2_OPT_DISCARD_SNAPSHOT "pass-discard-snapshot"

View File

@ -210,8 +210,8 @@ This example removes all unused cache entries every 15 minutes:
-drive file=hd.qcow2,cache-clean-interval=900 -drive file=hd.qcow2,cache-clean-interval=900
If unset, the default value for this parameter is 0 and it disables If unset, the default value for this parameter is 600. Setting it to 0
this feature. disables this feature.
Note that this functionality currently relies on the MADV_DONTNEED Note that this functionality currently relies on the MADV_DONTNEED
argument for madvise() to actually free the memory. This is a argument for madvise() to actually free the memory. This is a

View File

@ -2895,7 +2895,8 @@
# #
# @cache-clean-interval: clean unused entries in the L2 and refcount # @cache-clean-interval: clean unused entries in the L2 and refcount
# caches. The interval is in seconds. The default value # caches. The interval is in seconds. The default value
# is 0 and it disables this feature (since 2.5) # is 600, and 0 disables this feature. (since 2.5)
#
# @encrypt: Image decryption options. Mandatory for # @encrypt: Image decryption options. Mandatory for
# encrypted images, except when doing a metadata-only # encrypted images, except when doing a metadata-only
# probe of the image. (since 2.10) # probe of the image. (since 2.10)

View File

@ -747,7 +747,7 @@ it which is not used for the L2 cache)
@item cache-clean-interval @item cache-clean-interval
Clean unused entries in the L2 and refcount caches. The interval is in seconds. 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 600. Setting it to 0 disables this feature.
@item pass-discard-request @item pass-discard-request
Whether discard requests to the qcow2 device should be forwarded to the data Whether discard requests to the qcow2 device should be forwarded to the data