diff options
Diffstat (limited to 'usr.sbin/bhyve/bhyverun.c')
-rw-r--r-- | usr.sbin/bhyve/bhyverun.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c index 0f3c6e60e1d9..72e95c0e4627 100644 --- a/usr.sbin/bhyve/bhyverun.c +++ b/usr.sbin/bhyve/bhyverun.c @@ -196,7 +196,7 @@ static cpuset_t cpumask; static void vm_loop(struct vmctx *ctx, int vcpu, uint64_t rip); -static struct vm_exit vmexit[VM_MAXCPU]; +static struct vm_exit *vmexit; struct bhyvestats { uint64_t vmexit_bogus; @@ -213,9 +213,9 @@ struct mt_vmm_info { pthread_t mt_thr; struct vmctx *mt_ctx; int mt_vcpu; -} mt_vmm_info[VM_MAXCPU]; +} *mt_vmm_info; -static cpuset_t *vcpumap[VM_MAXCPU] = { NULL }; +static cpuset_t **vcpumap; static void usage(int code) @@ -472,6 +472,7 @@ build_vcpumaps(void) const char *value; int vcpu; + vcpumap = calloc(guest_ncpus, sizeof(*vcpumap)); for (vcpu = 0; vcpu < guest_ncpus; vcpu++) { snprintf(key, sizeof(key), "vcpu.%d.cpuset", vcpu); value = get_config_value(key); @@ -1574,6 +1575,10 @@ main(int argc, char *argv[]) vm_restore_time(ctx); #endif + /* Allocate per-VCPU resources. */ + vmexit = calloc(guest_ncpus, sizeof(*vmexit)); + mt_vmm_info = calloc(guest_ncpus, sizeof(*mt_vmm_info)); + /* * Add CPU 0 */ |