mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-22 09:17:58 +00:00
HV: ensure valid vcpu state transition
The vcpu state machine transition should follow below rule: old vcpu state new vcpu state ============== ============== VCPU_OFFLINE --- create_vcpu --> VCPU_INIT VCPU_INIT --- launch_vcpu --> VCPU_RUNNING VCPU_RUNNING --- pause_vcpu --> VCPU_PAUSED VCPU_PAUSED --- resume_vcpu --> VCPU_RUNNING VCPU_RUNNING/PAUSED --- pause_vcpu --> VCPU_ZOMBIE VCPU_INIT --- pause_vcpu --> VCPU_ZOMBIE VCPU_ZOMBIE --- reset_vcpu --> VCPU_INIT VCPU_ZOMBIE --- offline_vcpu--> VCPU_OFFLINE Tracked-On: #4267 Signed-off-by: Victor Sun <victor.sun@intel.com> Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
@@ -131,12 +131,11 @@
|
||||
if (vcpu->state != VCPU_OFFLINE)
|
||||
|
||||
enum vcpu_state {
|
||||
VCPU_OFFLINE = 0U,
|
||||
VCPU_INIT,
|
||||
VCPU_RUNNING,
|
||||
VCPU_PAUSED,
|
||||
VCPU_ZOMBIE,
|
||||
VCPU_OFFLINE,
|
||||
VCPU_UNKNOWN_STATE,
|
||||
};
|
||||
|
||||
enum vm_cpu_mode {
|
||||
@@ -626,9 +625,9 @@ void pause_vcpu(struct acrn_vcpu *vcpu, enum vcpu_state new_state);
|
||||
*
|
||||
* @param[inout] vcpu pointer to vcpu data structure
|
||||
*
|
||||
* @return None
|
||||
* @return 0 on success, -1 on failure.
|
||||
*/
|
||||
void resume_vcpu(struct acrn_vcpu *vcpu);
|
||||
int32_t resume_vcpu(struct acrn_vcpu *vcpu);
|
||||
|
||||
/**
|
||||
* @brief set the vcpu to running state, then it will be scheculed.
|
||||
|
Reference in New Issue
Block a user