mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-11-28 07:45:32 +00:00
hv: vcpu: Move offline_vcpu to common vcpu.c and rename to destroy_vcpu
destroy_vcpu: Call arch_deinit_vcpu, and do common deinit. Tracked-On: #8830 Signed-off-by: Yifan Liu <yifan1.liu@intel.com> Reviewed-by: Fei Li <fei1.li@intel.com> Acked-by: Wang Yu1 <yu1.wang@intel.com>
This commit is contained in:
@@ -549,17 +549,6 @@ void load_iwkey(struct acrn_vcpu *vcpu);
|
||||
*/
|
||||
int32_t run_vcpu(struct acrn_vcpu *vcpu);
|
||||
|
||||
/**
|
||||
* @brief unmap the vcpu with pcpu and free its vlapic
|
||||
*
|
||||
* Unmap the vcpu with pcpu and free its vlapic, and set the vcpu state to offline
|
||||
*
|
||||
* @param[inout] vcpu pointer to vcpu data structure
|
||||
* @pre vcpu != NULL
|
||||
* @pre vcpu->state == VCPU_ZOMBIE
|
||||
*/
|
||||
void offline_vcpu(struct acrn_vcpu *vcpu);
|
||||
|
||||
/**
|
||||
* @brief reset vcpu state and values
|
||||
*
|
||||
|
||||
@@ -35,7 +35,6 @@ struct per_cpu_arch {
|
||||
struct acrn_vcpu *whose_iwkey;
|
||||
uint32_t kick_pcpu_mode;
|
||||
uint32_t idle_mode;
|
||||
|
||||
} __aligned(PAGE_SIZE); /* per_cpu_region size aligned with PAGE_SIZE */
|
||||
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ struct per_cpu_region {
|
||||
* share same pCPU. So the maximum possible # of vCPUs that can
|
||||
* run on a pCPU is CONFIG_MAX_VM_NUM.
|
||||
* vcpu_array address must be aligned to 64-bit for atomic access
|
||||
* to avoid contention between offline_vcpu and posted interrupt handler
|
||||
* to avoid contention between destroy_vcpu and posted interrupt handler
|
||||
*/
|
||||
struct acrn_vcpu *vcpu_array[CONFIG_MAX_VM_NUM] __aligned(8);
|
||||
struct shared_buf *sbuf[ACRN_SBUF_PER_PCPU_ID_MAX];
|
||||
|
||||
@@ -99,6 +99,7 @@ void vcpu_set_state(struct acrn_vcpu *vcpu, enum vcpu_state new_state);
|
||||
|
||||
uint16_t pcpuid_from_vcpu(const struct acrn_vcpu *vcpu);
|
||||
int32_t arch_init_vcpu(struct acrn_vcpu *vcpu);
|
||||
void arch_deinit_vcpu(struct acrn_vcpu *vcpu);
|
||||
|
||||
void arch_vcpu_thread(struct thread_object *obj);
|
||||
void arch_context_switch_out(struct thread_object *prev);
|
||||
@@ -117,6 +118,17 @@ uint64_t arch_build_stack_frame(struct acrn_vcpu *vcpu);
|
||||
*/
|
||||
int32_t create_vcpu(struct acrn_vm *vm, uint16_t pcpu_id);
|
||||
|
||||
/**
|
||||
* @brief Destroy a vcpu structure
|
||||
*
|
||||
* Unmap the vcpu with pcpu and deinitialize a vcpu structure
|
||||
*
|
||||
* @param[inout] vcpu pointer to vcpu data structure
|
||||
* @pre vcpu != NULL
|
||||
* @pre vcpu->state == VCPU_ZOMBIE
|
||||
*/
|
||||
void destroy_vcpu(struct acrn_vcpu *vcpu);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user