cpu: Add crash_occurred flag into CPUState
CPUState::crash_occurred field inside CPUState marks that guest crash occurred. This value is added into cpu common migration subsection. Signed-off-by: Andrey Smetanin <asmetanin@virtuozzo.com> Signed-off-by: Denis V. Lunev <den@openvz.org> CC: Paolo Bonzini <pbonzini@redhat.com> CC: Andreas Färber <afaerber@suse.de> Message-Id: <1435924905-8926-12-git-send-email-den@openvz.org> [Document the new field. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									73aa529a48
								
							
						
					
					
						commit
						bac05aa9a7
					
				
							
								
								
									
										19
									
								
								exec.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								exec.c
									
									
									
									
									
								
							| @ -478,6 +478,24 @@ static const VMStateDescription vmstate_cpu_common_exception_index = { | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| static bool cpu_common_crash_occurred_needed(void *opaque) | ||||
| { | ||||
|     CPUState *cpu = opaque; | ||||
| 
 | ||||
|     return cpu->crash_occurred; | ||||
| } | ||||
| 
 | ||||
| static const VMStateDescription vmstate_cpu_common_crash_occurred = { | ||||
|     .name = "cpu_common/crash_occurred", | ||||
|     .version_id = 1, | ||||
|     .minimum_version_id = 1, | ||||
|     .needed = cpu_common_crash_occurred_needed, | ||||
|     .fields = (VMStateField[]) { | ||||
|         VMSTATE_BOOL(crash_occurred, CPUState), | ||||
|         VMSTATE_END_OF_LIST() | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| const VMStateDescription vmstate_cpu_common = { | ||||
|     .name = "cpu_common", | ||||
|     .version_id = 1, | ||||
| @ -491,6 +509,7 @@ const VMStateDescription vmstate_cpu_common = { | ||||
|     }, | ||||
|     .subsections = (const VMStateDescription*[]) { | ||||
|         &vmstate_cpu_common_exception_index, | ||||
|         &vmstate_cpu_common_crash_occurred, | ||||
|         NULL | ||||
|     } | ||||
| }; | ||||
|  | ||||
| @ -223,6 +223,7 @@ struct kvm_run; | ||||
|  * @halted: Nonzero if the CPU is in suspended state. | ||||
|  * @stop: Indicates a pending stop request. | ||||
|  * @stopped: Indicates the CPU has been artificially stopped. | ||||
|  * @crash_occurred: Indicates the OS reported a crash (panic) for this CPU | ||||
|  * @tcg_exit_req: Set to force TCG to stop executing linked TBs for this | ||||
|  *           CPU and return to its top level loop. | ||||
|  * @singlestep_enabled: Flags for single-stepping. | ||||
| @ -269,6 +270,7 @@ struct CPUState { | ||||
|     bool created; | ||||
|     bool stop; | ||||
|     bool stopped; | ||||
|     bool crash_occurred; | ||||
|     bool exit_request; | ||||
|     uint32_t interrupt_request; | ||||
|     int singlestep_enabled; | ||||
|  | ||||
| @ -251,6 +251,7 @@ static void cpu_common_reset(CPUState *cpu) | ||||
|     cpu->icount_decr.u32 = 0; | ||||
|     cpu->can_do_io = 1; | ||||
|     cpu->exception_index = -1; | ||||
|     cpu->crash_occurred = false; | ||||
|     memset(cpu->tb_jmp_cache, 0, TB_JMP_CACHE_SIZE * sizeof(void *)); | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Andrey Smetanin
						Andrey Smetanin