[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 12/20] xen/domctl: Merge max_vcpus into createdomain
>>> On 19.03.18 at 20:13, <andrew.cooper3@xxxxxxxxxx> wrote: > @@ -551,6 +555,37 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) > u_domctl) > if ( !ret ) > goto createdomain_fail_late; > > + ret = -EINVAL; > + if ( vcpus > domain_max_vcpus(d) ) > + goto createdomain_fail_late; > + > + ret = -ENOMEM; > + online = cpupool_domain_cpumask(d); > + > + BUG_ON(d->vcpu); > + BUG_ON(d->max_vcpus); > + > + d->vcpu = xzalloc_array(struct vcpu *, vcpus); > + /* Install vcpu array /then/ update max_vcpus. */ > + smp_wmb(); > + if ( !d->vcpu ) > + goto createdomain_fail_late; > + d->max_vcpus = vcpus; > + > + cpu = cpumask_any(online); > + for ( i = 0; i < vcpus; ++i ) > + { > + BUG_ON(d->vcpu[i]); > + > + if ( alloc_vcpu(d, i, cpu) == NULL ) > + goto createdomain_fail_late; > + > + BUG_ON(!d->vcpu[i]); > + > + cpu = cpumask_cycle(d->vcpu[i]->processor, online); > + } > + > + ret = 0; > d = NULL; > break; Same question here regarding the late placement. Additionally, by doing this after insertion onto the list, you still leave a window where the domain can be found but has a NULL vcpus pointer. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |