|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 1/2] xen/sched: core: skip missing vcpu slots in sched_move_domain()
On 8/19/26 09:53, Jan Beulich wrote:
> On 19.08.2026 07:15, Furkan Caliskan wrote:
>> --- a/xen/common/sched/core.c
>> +++ b/xen/common/sched/core.c
>> @@ -745,6 +745,38 @@ int sched_move_domain(struct domain *d, struct cpupool
>> *c)
>>
>> for ( unit_idx = 0; unit_idx < n_units; unit_idx++ )
>> {
>> + /*
>> + * A vcpu slot can be missing if creation failed partway
>> + * through. A dying domain is being torn down regardless, so
>> + * skip the unit -- but a domain that isn't dying still needs
>> + * every vcpu it has schedulable, so fail instead of silently
>> + * dropping some of them.
>> + */
>> + bool vcpu_failed = false;
>> +
>> + for ( unsigned int i = 0;
>> + i < gran && unit_idx * gran + i < d->max_vcpus; i++ )
>> + {
>> + if ( !d->vcpu[unit_idx * gran + i] )
>
> Is there a particular reason domain_vcpu() cannot be used here?
>
> Jan
We still need to guard against d->max_vcpus so that out-of-bounds
indices in a partially filled unit don't get treated as missing
vCPUs by domain_vcpu() returning NULL.
However, domain_vcpu(unit_idx * gran + i) can be used here instead of
d->vcpu[unit_idx * gran + i]. I simply used d->vcpu[] because the rest
of the function uses it that way.
Furkan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |