New QMP command query-cpu-max and HMP command cpu_max
These commands return the maximum number of CPUs supported by the currently running emulator instance, as defined in its QEMUMachine struct. Signed-off-by: Michal Novotny <minovotn@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
		
							parent
							
								
									e5ecec7bad
								
							
						
					
					
						commit
						4d700430a2
					
				| @ -1643,6 +1643,8 @@ show qdev device model list | |||||||
| show roms | show roms | ||||||
| @item info tpm | @item info tpm | ||||||
| show the TPM device | show the TPM device | ||||||
|  | @item info cpu_max | ||||||
|  | show the number of CPUs supported by the machine being emulated. | ||||||
| @end table | @end table | ||||||
| ETEXI | ETEXI | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								hmp.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								hmp.c
									
									
									
									
									
								
							| @ -748,6 +748,14 @@ void hmp_ringbuf_read(Monitor *mon, const QDict *qdict) | |||||||
|     g_free(data); |     g_free(data); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void hmp_query_cpu_max(Monitor *mon, const QDict *qdict) | ||||||
|  | { | ||||||
|  |     int cpu_max; | ||||||
|  | 
 | ||||||
|  |     cpu_max = qmp_query_cpu_max(NULL); | ||||||
|  |     monitor_printf(mon, "Maximum number of CPUs is %d\n", cpu_max); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| static void hmp_cont_cb(void *opaque, int err) | static void hmp_cont_cb(void *opaque, int err) | ||||||
| { | { | ||||||
|     if (!err) { |     if (!err) { | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								hmp.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								hmp.h
									
									
									
									
									
								
							| @ -42,6 +42,7 @@ void hmp_stop(Monitor *mon, const QDict *qdict); | |||||||
| void hmp_system_reset(Monitor *mon, const QDict *qdict); | void hmp_system_reset(Monitor *mon, const QDict *qdict); | ||||||
| void hmp_system_powerdown(Monitor *mon, const QDict *qdict); | void hmp_system_powerdown(Monitor *mon, const QDict *qdict); | ||||||
| void hmp_cpu(Monitor *mon, const QDict *qdict); | void hmp_cpu(Monitor *mon, const QDict *qdict); | ||||||
|  | void hmp_query_cpu_max(Monitor *mon, const QDict *qdict); | ||||||
| void hmp_memsave(Monitor *mon, const QDict *qdict); | void hmp_memsave(Monitor *mon, const QDict *qdict); | ||||||
| void hmp_pmemsave(Monitor *mon, const QDict *qdict); | void hmp_pmemsave(Monitor *mon, const QDict *qdict); | ||||||
| void hmp_ringbuf_write(Monitor *mon, const QDict *qdict); | void hmp_ringbuf_write(Monitor *mon, const QDict *qdict); | ||||||
|  | |||||||
| @ -2745,6 +2745,13 @@ static mon_cmd_t info_cmds[] = { | |||||||
|         .help       = "show the TPM device", |         .help       = "show the TPM device", | ||||||
|         .mhandler.cmd = hmp_info_tpm, |         .mhandler.cmd = hmp_info_tpm, | ||||||
|     }, |     }, | ||||||
|  |     { | ||||||
|  |         .name       = "cpu_max", | ||||||
|  |         .args_type  = "", | ||||||
|  |         .params     = "", | ||||||
|  |         .help       = "Get maximum number of VCPUs supported by machine", | ||||||
|  |         .mhandler.cmd = hmp_query_cpu_max, | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         .name       = NULL, |         .name       = NULL, | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -1831,6 +1831,17 @@ | |||||||
| ## | ## | ||||||
| { 'command': 'query-migrate-cache-size', 'returns': 'int' } | { 'command': 'query-migrate-cache-size', 'returns': 'int' } | ||||||
| 
 | 
 | ||||||
|  | ## | ||||||
|  | ## @query-cpu-max | ||||||
|  | ## | ||||||
|  | ## query maximum number of CPUs supported by machine | ||||||
|  | ## | ||||||
|  | ## Returns: number of CPUs | ||||||
|  | ## | ||||||
|  | ## Since: 1.5 | ||||||
|  | ### | ||||||
|  | { 'command': 'query-cpu-max', 'returns': 'int' } | ||||||
|  | 
 | ||||||
| ## | ## | ||||||
| # @ObjectPropertyInfo: | # @ObjectPropertyInfo: | ||||||
| # | # | ||||||
|  | |||||||
| @ -382,6 +382,28 @@ Example: | |||||||
| 
 | 
 | ||||||
| Note: CPUs' indexes are obtained with the 'query-cpus' command. | Note: CPUs' indexes are obtained with the 'query-cpus' command. | ||||||
| 
 | 
 | ||||||
|  | EQMP | ||||||
|  | 
 | ||||||
|  |     { | ||||||
|  |         .name       = "query-cpu-max", | ||||||
|  |         .args_type  = "", | ||||||
|  |         .mhandler.cmd_new = qmp_marshal_input_query_cpu_max, | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  | SQMP | ||||||
|  | query-cpu-max | ||||||
|  | ------------- | ||||||
|  | 
 | ||||||
|  | Get the maximum CPUs supported by the machine being currently | ||||||
|  | emulated. | ||||||
|  | 
 | ||||||
|  | Returns json-int. | ||||||
|  | 
 | ||||||
|  | Example: | ||||||
|  | 
 | ||||||
|  | -> { "execute": "query-cpu-max" } | ||||||
|  | <- { "return": 255 } | ||||||
|  | 
 | ||||||
| EQMP | EQMP | ||||||
| 
 | 
 | ||||||
|     { |     { | ||||||
|  | |||||||
							
								
								
									
										5
									
								
								vl.c
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								vl.c
									
									
									
									
									
								
							| @ -662,6 +662,11 @@ StatusInfo *qmp_query_status(Error **errp) | |||||||
|     return info; |     return info; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | int64_t qmp_query_cpu_max(Error **errp) | ||||||
|  | { | ||||||
|  |     return current_machine->max_cpus; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| /***********************************************************/ | /***********************************************************/ | ||||||
| /* real time host monotonic timer */ | /* real time host monotonic timer */ | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Michal Novotny
						Michal Novotny