aboutsummaryrefslogtreecommitdiff
path: root/qapi
diff options
context:
space:
mode:
authorAlberto Garcia <berto@igalia.com>2015-08-04 15:14:40 +0300
committerMax Reitz <mreitz@redhat.com>2015-09-04 21:00:32 +0200
commit279621c046ce57de0af9e3c00663b48d3a7835ae (patch)
treee14d8ab78e7bfcddf42b763a120cc8d116d38430 /qapi
parent355ee2d0e8ca536a6278c9c763ddd2f136eace3f (diff)
qcow2: add option to clean unused cache entries after some time
This adds a new 'cache-clean-interval' option that cleans all qcow2 cache entries that haven't been used in a certain interval, given in seconds. This allows setting a large L2 cache size so it can handle scenarios with lots of I/O and at the same time use little memory during periods of inactivity. This feature currently relies on MADV_DONTNEED to free that memory, so it is not useful in systems that don't follow that behavior. Signed-off-by: Alberto Garcia <berto@igalia.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-id: a70d12da60433df9360ada648b3f34b8f6f354ce.1438690126.git.berto@igalia.com Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'qapi')
-rw-r--r--qapi/block-core.json7
1 files changed, 6 insertions, 1 deletions
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 7b2efb8678..bb2189ef3a 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -1592,6 +1592,10 @@
# @refcount-cache-size: #optional the maximum size of the refcount block cache
# in bytes (since 2.2)
#
+# @cache-clean-interval: #optional 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)
+#
# Since: 1.7
##
{ 'struct': 'BlockdevOptionsQcow2',
@@ -1603,7 +1607,8 @@
'*overlap-check': 'Qcow2OverlapChecks',
'*cache-size': 'int',
'*l2-cache-size': 'int',
- '*refcount-cache-size': 'int' } }
+ '*refcount-cache-size': 'int',
+ '*cache-clean-interval': 'int' } }
##