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:
		
							parent
							
								
									45b4949c7b
								
							
						
					
					
						commit
						e957b50b8d
					
				@ -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
 | 
				
			||||||
 | 
				
			|||||||
@ -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"
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
				
			||||||
 | 
				
			|||||||
@ -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)
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user