migration: Use an array instead of 3 parameters
Put the three parameters related to multiple thread (de)compression into an int array, and use an enum type to index the parameter. Signed-off-by: Liang Li <liang.z.li@intel.com> Signed-off-by: Yang Zhang <yang.z.zhang@intel.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
		
							parent
							
								
									dde4e694ae
								
							
						
					
					
						commit
						43c60a81ba
					
				| @ -50,9 +50,7 @@ struct MigrationState | ||||
|     QemuThread thread; | ||||
|     QEMUBH *cleanup_bh; | ||||
|     QEMUFile *file; | ||||
|     int compress_thread_count; | ||||
|     int decompress_thread_count; | ||||
|     int compress_level; | ||||
|     int parameters[MIGRATION_PARAMETER_MAX]; | ||||
| 
 | ||||
|     int state; | ||||
|     MigrationParams params; | ||||
|  | ||||
| @ -60,9 +60,12 @@ MigrationState *migrate_get_current(void) | ||||
|         .bandwidth_limit = MAX_THROTTLE, | ||||
|         .xbzrle_cache_size = DEFAULT_MIGRATE_CACHE_SIZE, | ||||
|         .mbps = -1, | ||||
|         .compress_thread_count = DEFAULT_MIGRATE_COMPRESS_THREAD_COUNT, | ||||
|         .decompress_thread_count = DEFAULT_MIGRATE_DECOMPRESS_THREAD_COUNT, | ||||
|         .compress_level = DEFAULT_MIGRATE_COMPRESS_LEVEL, | ||||
|         .parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL] = | ||||
|                 DEFAULT_MIGRATE_COMPRESS_LEVEL, | ||||
|         .parameters[MIGRATION_PARAMETER_COMPRESS_THREADS] = | ||||
|                 DEFAULT_MIGRATE_COMPRESS_THREAD_COUNT, | ||||
|         .parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS] = | ||||
|                 DEFAULT_MIGRATE_DECOMPRESS_THREAD_COUNT, | ||||
|     }; | ||||
| 
 | ||||
|     return ¤t_migration; | ||||
| @ -406,9 +409,11 @@ static MigrationState *migrate_init(const MigrationParams *params) | ||||
|     int64_t bandwidth_limit = s->bandwidth_limit; | ||||
|     bool enabled_capabilities[MIGRATION_CAPABILITY_MAX]; | ||||
|     int64_t xbzrle_cache_size = s->xbzrle_cache_size; | ||||
|     int compress_level = s->compress_level; | ||||
|     int compress_thread_count = s->compress_thread_count; | ||||
|     int decompress_thread_count = s->decompress_thread_count; | ||||
|     int compress_level = s->parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL]; | ||||
|     int compress_thread_count = | ||||
|             s->parameters[MIGRATION_PARAMETER_COMPRESS_THREADS]; | ||||
|     int decompress_thread_count = | ||||
|             s->parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS]; | ||||
| 
 | ||||
|     memcpy(enabled_capabilities, s->enabled_capabilities, | ||||
|            sizeof(enabled_capabilities)); | ||||
| @ -419,9 +424,11 @@ static MigrationState *migrate_init(const MigrationParams *params) | ||||
|            sizeof(enabled_capabilities)); | ||||
|     s->xbzrle_cache_size = xbzrle_cache_size; | ||||
| 
 | ||||
|     s->compress_level = compress_level; | ||||
|     s->compress_thread_count = compress_thread_count; | ||||
|     s->decompress_thread_count = decompress_thread_count; | ||||
|     s->parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL] = compress_level; | ||||
|     s->parameters[MIGRATION_PARAMETER_COMPRESS_THREADS] = | ||||
|                compress_thread_count; | ||||
|     s->parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS] = | ||||
|                decompress_thread_count; | ||||
|     s->bandwidth_limit = bandwidth_limit; | ||||
|     s->state = MIGRATION_STATUS_SETUP; | ||||
|     trace_migrate_set_state(MIGRATION_STATUS_SETUP); | ||||
| @ -624,7 +631,7 @@ int migrate_compress_level(void) | ||||
| 
 | ||||
|     s = migrate_get_current(); | ||||
| 
 | ||||
|     return s->compress_level; | ||||
|     return s->parameters[MIGRATION_PARAMETER_COMPRESS_LEVEL]; | ||||
| } | ||||
| 
 | ||||
| int migrate_compress_threads(void) | ||||
| @ -633,7 +640,7 @@ int migrate_compress_threads(void) | ||||
| 
 | ||||
|     s = migrate_get_current(); | ||||
| 
 | ||||
|     return s->compress_thread_count; | ||||
|     return s->parameters[MIGRATION_PARAMETER_COMPRESS_THREADS]; | ||||
| } | ||||
| 
 | ||||
| int migrate_decompress_threads(void) | ||||
| @ -642,7 +649,7 @@ int migrate_decompress_threads(void) | ||||
| 
 | ||||
|     s = migrate_get_current(); | ||||
| 
 | ||||
|     return s->decompress_thread_count; | ||||
|     return s->parameters[MIGRATION_PARAMETER_DECOMPRESS_THREADS]; | ||||
| } | ||||
| 
 | ||||
| int migrate_use_xbzrle(void) | ||||
|  | ||||
| @ -569,6 +569,29 @@ | ||||
| ## | ||||
| { 'command': 'query-migrate-capabilities', 'returns':   ['MigrationCapabilityStatus']} | ||||
| 
 | ||||
| # @MigrationParameter | ||||
| # | ||||
| # Migration parameters enumeration | ||||
| # | ||||
| # @compress-level: Set the compression level to be used in live migration, | ||||
| #          the compression level is an integer between 0 and 9, where 0 means | ||||
| #          no compression, 1 means the best compression speed, and 9 means best | ||||
| #          compression ratio which will consume more CPU. | ||||
| # | ||||
| # @compress-threads: Set compression thread count to be used in live migration, | ||||
| #          the compression thread count is an integer between 1 and 255. | ||||
| # | ||||
| # @decompress-threads: Set decompression thread count to be used in live | ||||
| #          migration, the decompression thread count is an integer between 1 | ||||
| #          and 255. Usually, decompression is at least 4 times as fast as | ||||
| #          compression, so set the decompress-threads to the number about 1/4 | ||||
| #          of compress-threads is adequate. | ||||
| # | ||||
| # Since: 2.4 | ||||
| ## | ||||
| { 'enum': 'MigrationParameter', | ||||
|   'data': ['compress-level', 'compress-threads', 'decompress-threads'] } | ||||
| 
 | ||||
| ## | ||||
| # @MouseInfo: | ||||
| # | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Liang Li
						Liang Li