|
|
7711c0 |
From 098468977d64b1c8f63ae6fb312e24698d368c74 Mon Sep 17 00:00:00 2001
|
|
|
7711c0 |
From: Kevin Wolf <kwolf@redhat.com>
|
|
|
7711c0 |
Date: Tue, 19 Feb 2019 17:00:21 +0100
|
|
|
7711c0 |
Subject: [PATCH 20/23] qcow2: Set the default cache-clean-interval to 10
|
|
|
7711c0 |
minutes
|
|
|
7711c0 |
|
|
|
7711c0 |
RH-Author: Kevin Wolf <kwolf@redhat.com>
|
|
|
7711c0 |
Message-id: <20190219170023.27826-12-kwolf@redhat.com>
|
|
|
7711c0 |
Patchwork-id: 84550
|
|
|
7711c0 |
O-Subject: [RHEL-7.7 qemu-kvm-rhev PATCH 11/13] qcow2: Set the default cache-clean-interval to 10 minutes
|
|
|
7711c0 |
Bugzilla: 1656913
|
|
|
7711c0 |
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
7711c0 |
RH-Acked-by: Max Reitz <mreitz@redhat.com>
|
|
|
7711c0 |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
7711c0 |
|
|
|
7711c0 |
From: Leonid Bloch <lbloch@janustech.com>
|
|
|
7711c0 |
|
|
|
7711c0 |
The default cache-clean-interval is set to 10 minutes, in order to lower
|
|
|
7711c0 |
the overhead of the qcow2 caches (before the default was 0, i.e.
|
|
|
7711c0 |
disabled).
|
|
|
7711c0 |
|
|
|
7711c0 |
* For non-Linux platforms the default is kept at 0, because
|
|
|
7711c0 |
cache-clean-interval is not supported there yet.
|
|
|
7711c0 |
|
|
|
7711c0 |
Signed-off-by: Leonid Bloch <lbloch@janustech.com>
|
|
|
7711c0 |
Reviewed-by: Alberto Garcia <berto@igalia.com>
|
|
|
7711c0 |
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
7711c0 |
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
7711c0 |
(cherry picked from commit e957b50b8daecfc39a1ac09855b0eacb6edfd328)
|
|
|
7711c0 |
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
7711c0 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
7711c0 |
---
|
|
|
7711c0 |
block/qcow2.c | 2 +-
|
|
|
7711c0 |
block/qcow2.h | 4 +++-
|
|
|
7711c0 |
docs/qcow2-cache.txt | 4 ++--
|
|
|
7711c0 |
qapi/block-core.json | 3 ++-
|
|
|
7711c0 |
qemu-options.hx | 2 +-
|
|
|
7711c0 |
5 files changed, 9 insertions(+), 6 deletions(-)
|
|
|
7711c0 |
|
|
|
7711c0 |
diff --git a/block/qcow2.c b/block/qcow2.c
|
|
|
7711c0 |
index 72f1ea8..acd076c 100644
|
|
|
7711c0 |
--- a/block/qcow2.c
|
|
|
7711c0 |
+++ b/block/qcow2.c
|
|
|
7711c0 |
@@ -940,7 +940,7 @@ static int qcow2_update_options_prepare(BlockDriverState *bs,
|
|
|
7711c0 |
/* New interval for cache cleanup timer */
|
|
|
7711c0 |
r->cache_clean_interval =
|
|
|
7711c0 |
qemu_opt_get_number(opts, QCOW2_OPT_CACHE_CLEAN_INTERVAL,
|
|
|
7711c0 |
- s->cache_clean_interval);
|
|
|
7711c0 |
+ DEFAULT_CACHE_CLEAN_INTERVAL);
|
|
|
7711c0 |
#ifndef CONFIG_LINUX
|
|
|
7711c0 |
if (r->cache_clean_interval != 0) {
|
|
|
7711c0 |
error_setg(errp, QCOW2_OPT_CACHE_CLEAN_INTERVAL
|
|
|
7711c0 |
diff --git a/block/qcow2.h b/block/qcow2.h
|
|
|
7711c0 |
index 6c6c742..29b041c 100644
|
|
|
7711c0 |
--- a/block/qcow2.h
|
|
|
7711c0 |
+++ b/block/qcow2.h
|
|
|
7711c0 |
@@ -76,13 +76,15 @@
|
|
|
7711c0 |
|
|
|
7711c0 |
#ifdef CONFIG_LINUX
|
|
|
7711c0 |
#define DEFAULT_L2_CACHE_MAX_SIZE S_32MiB
|
|
|
7711c0 |
+#define DEFAULT_CACHE_CLEAN_INTERVAL 600 /* seconds */
|
|
|
7711c0 |
#else
|
|
|
7711c0 |
#define DEFAULT_L2_CACHE_MAX_SIZE S_8MiB
|
|
|
7711c0 |
+/* Cache clean interval is currently available only on Linux, so must be 0 */
|
|
|
7711c0 |
+#define DEFAULT_CACHE_CLEAN_INTERVAL 0
|
|
|
7711c0 |
#endif
|
|
|
7711c0 |
|
|
|
7711c0 |
#define DEFAULT_CLUSTER_SIZE S_64KiB
|
|
|
7711c0 |
|
|
|
7711c0 |
-
|
|
|
7711c0 |
#define QCOW2_OPT_LAZY_REFCOUNTS "lazy-refcounts"
|
|
|
7711c0 |
#define QCOW2_OPT_DISCARD_REQUEST "pass-discard-request"
|
|
|
7711c0 |
#define QCOW2_OPT_DISCARD_SNAPSHOT "pass-discard-snapshot"
|
|
|
7711c0 |
diff --git a/docs/qcow2-cache.txt b/docs/qcow2-cache.txt
|
|
|
7711c0 |
index 1fcc065..59358b8 100644
|
|
|
7711c0 |
--- a/docs/qcow2-cache.txt
|
|
|
7711c0 |
+++ b/docs/qcow2-cache.txt
|
|
|
7711c0 |
@@ -210,8 +210,8 @@ This example removes all unused cache entries every 15 minutes:
|
|
|
7711c0 |
|
|
|
7711c0 |
-drive file=hd.qcow2,cache-clean-interval=900
|
|
|
7711c0 |
|
|
|
7711c0 |
-If unset, the default value for this parameter is 0 and it disables
|
|
|
7711c0 |
-this feature.
|
|
|
7711c0 |
+If unset, the default value for this parameter is 600. Setting it to 0
|
|
|
7711c0 |
+disables this feature.
|
|
|
7711c0 |
|
|
|
7711c0 |
Note that this functionality currently relies on the MADV_DONTNEED
|
|
|
7711c0 |
argument for madvise() to actually free the memory. This is a
|
|
|
7711c0 |
diff --git a/qapi/block-core.json b/qapi/block-core.json
|
|
|
7711c0 |
index 9741555..f43124e 100644
|
|
|
7711c0 |
--- a/qapi/block-core.json
|
|
|
7711c0 |
+++ b/qapi/block-core.json
|
|
|
7711c0 |
@@ -2873,7 +2873,8 @@
|
|
|
7711c0 |
#
|
|
|
7711c0 |
# @cache-clean-interval: clean unused entries in the L2 and refcount
|
|
|
7711c0 |
# caches. The interval is in seconds. The default value
|
|
|
7711c0 |
-# is 0 and it disables this feature (since 2.5)
|
|
|
7711c0 |
+# is 600, and 0 disables this feature. (since 2.5)
|
|
|
7711c0 |
+#
|
|
|
7711c0 |
# @encrypt: Image decryption options. Mandatory for
|
|
|
7711c0 |
# encrypted images, except when doing a metadata-only
|
|
|
7711c0 |
# probe of the image. (since 2.10)
|
|
|
7711c0 |
diff --git a/qemu-options.hx b/qemu-options.hx
|
|
|
7711c0 |
index 3580d16..f7c9e23 100644
|
|
|
7711c0 |
--- a/qemu-options.hx
|
|
|
7711c0 |
+++ b/qemu-options.hx
|
|
|
7711c0 |
@@ -767,7 +767,7 @@ it which is not used for the L2 cache)
|
|
|
7711c0 |
|
|
|
7711c0 |
@item cache-clean-interval
|
|
|
7711c0 |
Clean unused entries in the L2 and refcount caches. The interval is in seconds.
|
|
|
7711c0 |
-The default value is 0 and it disables this feature.
|
|
|
7711c0 |
+The default value is 600. Setting it to 0 disables this feature.
|
|
|
7711c0 |
|
|
|
7711c0 |
@item pass-discard-request
|
|
|
7711c0 |
Whether discard requests to the qcow2 device should be forwarded to the data
|
|
|
7711c0 |
--
|
|
|
7711c0 |
1.8.3.1
|
|
|
7711c0 |
|