mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-24 14:33:38 +00:00
dm: get vcpu num from hypervisor when create VM
Now, we pre-define VM configuration statically in HV. So HV can create vcpus instead of DM when VM create. This patch get the created vcpu_num from HV. vm_create_vcpu can be removed later if kernel can get vcpu_num correctly without IC_CREATE_VCPU ioctl. v4: Keep vm_create_vcpu in DM for compatbility. We might remove it when kernel is ready. Tracked-On: #3663 Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
This commit is contained in:
parent
489937f7b8
commit
d8acff1f44
@ -258,7 +258,6 @@ add_cpu(struct vmctx *ctx, int guest_ncpus)
|
||||
fprintf(stderr, "ERROR: could not create VCPU %d\n", i);
|
||||
return error;
|
||||
}
|
||||
|
||||
CPU_SET_ATOMIC(i, &cpumask);
|
||||
|
||||
mt_vmm_info[i].mt_ctx = ctx;
|
||||
@ -962,7 +961,7 @@ main(int argc, char *argv[])
|
||||
|
||||
for (;;) {
|
||||
pr_notice("vm_create: %s\n", vmname);
|
||||
ctx = vm_create(vmname, (unsigned long)vhm_req_buf);
|
||||
ctx = vm_create(vmname, (unsigned long)vhm_req_buf, &guest_ncpus);
|
||||
if (!ctx) {
|
||||
pr_err("vm_create failed");
|
||||
goto create_fail;
|
||||
|
@ -87,7 +87,7 @@ check_api(int fd)
|
||||
static int devfd = -1;
|
||||
|
||||
struct vmctx *
|
||||
vm_create(const char *name, uint64_t req_buf)
|
||||
vm_create(const char *name, uint64_t req_buf, int *vcpu_num)
|
||||
{
|
||||
struct vmctx *ctx;
|
||||
struct acrn_create_vm create_vm;
|
||||
@ -168,6 +168,7 @@ vm_create(const char *name, uint64_t req_buf)
|
||||
goto err;
|
||||
}
|
||||
|
||||
*vcpu_num = create_vm.vcpu_num;
|
||||
ctx->vmid = create_vm.vmid;
|
||||
|
||||
return ctx;
|
||||
|
@ -87,7 +87,7 @@ struct vm_isa_irq {
|
||||
*
|
||||
* Returns a pointer to the memory segment on success and MAP_FAILED otherwise.
|
||||
*/
|
||||
struct vmctx *vm_create(const char *name, uint64_t req_buf);
|
||||
struct vmctx *vm_create(const char *name, uint64_t req_buf, int* vcpu_num);
|
||||
void vm_pause(struct vmctx *ctx);
|
||||
void vm_reset(struct vmctx *ctx);
|
||||
int vm_create_ioreq_client(struct vmctx *ctx);
|
||||
|
Loading…
Reference in New Issue
Block a user