|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] RE: [PATCH] Don't assume the vcpu_id is continous in alloc_v
Keir Fraser wrote:
> On 12/11/2009 11:31, "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx> wrote:
>
>>> Currently in alloc_vcpu, it assumes the vcpu is allocated with
>>> vcpu_id is continous. When cpu hot-added, this assumption is broken
>>> because the hot-added CPU may be brougt online by dom0 in arbitrary
>>> order. This patch try to link the new vcpu to the end of the link.
>>>
>>> Signed-off-by: Jiang, Yunhong <yunhong.jiang@xxxxxxxxx>
>>
>> Is this something to do with allocating vcpus for the idle domain?
>>
>> If so, I suggest we just allocate vcpu_ids sequentially on-demand. I
>> can work up a patch for you to test if you like.
>
> I was wrong, that was a bad idea since idle_vcpu[] is also the
> idle domain's
> vcpu pointer array. Actually I also have been able to revert
> c/s 20045 since
> I was mistaken about that being needed. And I've applied your
> patch as c/s
> 20433, but I rewrote it to keep vcpus in ascending order of
> vcpuid (not sure
> it's necessary really, but it's nice to do).
Thanks for your changes very much.
I just noticed I missed get a lock for this change.
Originally I thought the XEN_DOMCTL_max_vcpus will be synced, but seems no. So
alloc_vcpu() may have race condition. (for idle_vcpu or dom0, it should be safe
already)
I'm also wondering if we need take lock at XEN_DOMCTL_max_vcpus, because
following checking may failed if two hypercall at most same time. Or, we need
depends on user space tools to keep this synced?
if ( (d->max_vcpus > 0) && (max > d->max_vcpus) )
goto maxvcpu_out;
Thanks
Yunhong Jiang
>
> -- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|