mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-08-03 09:23:35 +00:00
hv: make hypercall HC_CREATE_VCPU empty
Now, we create vcpus while VM being created in hypervisor. The create vcpu hypercall will not be used any more. For compatbility, keep the hypercall HC_CREATE_VCPU do nothing. v4: Don't remove HC_CREATE_VCPU hypercall, let it do nothing. Tracked-On: #3663 Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
This commit is contained in:
parent
0ea12a45d4
commit
f4ce9cc4a2
@ -96,12 +96,7 @@ static int32_t dispatch_sos_hypercall(const struct acrn_vcpu *vcpu)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case HC_CREATE_VCPU:
|
case HC_CREATE_VCPU:
|
||||||
/* param1: relative vmid to sos, vm_id: absolute vmid */
|
ret = 0;
|
||||||
if (vmid_is_valid) {
|
|
||||||
spinlock_obtain(&vmm_hypercall_lock);
|
|
||||||
ret = hcall_create_vcpu(sos_vm, vm_id, param2);
|
|
||||||
spinlock_release(&vmm_hypercall_lock);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HC_SET_VCPU_REGS:
|
case HC_SET_VCPU_REGS:
|
||||||
|
@ -265,44 +265,6 @@ int32_t hcall_pause_vm(uint16_t vmid)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief create vcpu
|
|
||||||
*
|
|
||||||
* Create a vcpu based on parameter for a VM, it will allocate vcpu from
|
|
||||||
* freed physical cpus, if there is no available pcpu, the function will
|
|
||||||
* return -1.
|
|
||||||
*
|
|
||||||
* @param vm Pointer to VM data structure
|
|
||||||
* @param vmid ID of the VM
|
|
||||||
* @param param guest physical address. This gpa points to
|
|
||||||
* struct acrn_create_vcpu
|
|
||||||
*
|
|
||||||
* @pre Pointer vm shall point to SOS_VM
|
|
||||||
* @return 0 on success, non-zero on error.
|
|
||||||
*/
|
|
||||||
int32_t hcall_create_vcpu(struct acrn_vm *vm, uint16_t vmid, uint64_t param)
|
|
||||||
{
|
|
||||||
int32_t ret = -1;
|
|
||||||
uint16_t pcpu_id;
|
|
||||||
struct acrn_create_vcpu cv;
|
|
||||||
struct acrn_vm *target_vm = get_vm_from_vmid(vmid);
|
|
||||||
|
|
||||||
if (!is_poweroff_vm(target_vm) && is_postlaunched_vm(target_vm) && (param != 0U)) {
|
|
||||||
if (copy_from_gpa(vm, &cv, param, sizeof(cv)) != 0) {
|
|
||||||
pr_err("%s: Unable copy param to vm\n", __func__);
|
|
||||||
} else {
|
|
||||||
pcpu_id = allocate_pcpu();
|
|
||||||
if (pcpu_id == INVALID_CPU_ID) {
|
|
||||||
pr_err("%s: No physical available\n", __func__);
|
|
||||||
} else {
|
|
||||||
ret = prepare_vcpu(target_vm, pcpu_id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief reset virtual machine
|
* @brief reset virtual machine
|
||||||
*
|
*
|
||||||
|
@ -134,23 +134,6 @@ int32_t hcall_start_vm(uint16_t vmid);
|
|||||||
*/
|
*/
|
||||||
int32_t hcall_pause_vm(uint16_t vmid);
|
int32_t hcall_pause_vm(uint16_t vmid);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief create vcpu
|
|
||||||
*
|
|
||||||
* Create a vcpu based on parameter for a VM, it will allocate vcpu from
|
|
||||||
* freed physical cpus, if there is no available pcpu, the function will
|
|
||||||
* return -1.
|
|
||||||
*
|
|
||||||
* @param vm Pointer to VM data structure
|
|
||||||
* @param vmid ID of the VM
|
|
||||||
* @param param guest physical address. This gpa points to
|
|
||||||
* struct acrn_create_vcpu
|
|
||||||
*
|
|
||||||
* @pre Pointer vm shall point to SOS_VM
|
|
||||||
* @return 0 on success, non-zero on error.
|
|
||||||
*/
|
|
||||||
int32_t hcall_create_vcpu(struct acrn_vm *vm, uint16_t vmid, uint64_t param);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief set vcpu regs
|
* @brief set vcpu regs
|
||||||
*
|
*
|
||||||
|
@ -366,9 +366,8 @@ struct acrn_create_vm {
|
|||||||
uint8_t reserved2[16];
|
uint8_t reserved2[16];
|
||||||
} __aligned(8);
|
} __aligned(8);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Info to create a VCPU
|
* @brief Info to create a VCPU (deprecated)
|
||||||
*
|
*
|
||||||
* the parameter for HC_CREATE_VCPU hypercall
|
* the parameter for HC_CREATE_VCPU hypercall
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user