migration: Make sure that we pass the right cache size
Instead of passing silently round down the number of pages, make it an error that the cache size is not a power of 2. Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
		
							parent
							
								
									a93ece47fd
								
							
						
					
					
						commit
						bab01ed4e8
					
				| @ -58,6 +58,13 @@ PageCache *cache_init(int64_t new_size, size_t page_size, Error **errp) | ||||
|         return NULL; | ||||
|     } | ||||
| 
 | ||||
|     /* round down to the nearest power of 2 */ | ||||
|     if (!is_power_of_2(num_pages)) { | ||||
|         error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "cache size", | ||||
|                    "is not a power of two number of pages"); | ||||
|         return NULL; | ||||
|     } | ||||
| 
 | ||||
|     /* We prefer not to abort if there is no memory */ | ||||
|     cache = g_try_malloc(sizeof(*cache)); | ||||
|     if (!cache) { | ||||
| @ -65,11 +72,6 @@ PageCache *cache_init(int64_t new_size, size_t page_size, Error **errp) | ||||
|                    "Failed to allocate cache"); | ||||
|         return NULL; | ||||
|     } | ||||
|     /* round down to the nearest power of 2 */ | ||||
|     if (!is_power_of_2(num_pages)) { | ||||
|         num_pages = pow2floor(num_pages); | ||||
|         DPRINTF("rounding down to %" PRId64 "\n", num_pages); | ||||
|     } | ||||
|     cache->page_size = page_size; | ||||
|     cache->num_items = 0; | ||||
|     cache->max_num_items = num_pages; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Juan Quintela
						Juan Quintela