|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 09/16] xen: sched: DOMCTL_*vcpuaffinity works with hard and soft affinity
On gio, 2013-11-14 at 14:42 +0000, George Dunlap wrote:
> On 13/11/13 19:12, Dario Faggioli wrote:
> > @@ -617,19 +617,49 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t)
> > u_domctl)
> > if ( op->cmd == XEN_DOMCTL_setvcpuaffinity )
> > {
> > cpumask_var_t new_affinity;
> > + cpumask_t *online;
> >
> > ret = xenctl_bitmap_to_cpumask(
> > &new_affinity, &op->u.vcpuaffinity.cpumap);
> > - if ( !ret )
> > + if ( ret )
> > + break;
> > +
> > + ret = -EINVAL;
> > + if ( op->u.vcpuaffinity.flags & XEN_VCPUAFFINITY_HARD )
> > + ret = vcpu_set_hard_affinity(v, new_affinity);
> > + else if ( op->u.vcpuaffinity.flags & XEN_VCPUAFFINITY_SOFT )
> > + ret = vcpu_set_soft_affinity(v, new_affinity);
>
> Wait, why are we making this a bitmask of flags, if we can only set one
> at a time? Shouldn't it instead be a simple enum?
>
Right. I had a split mind about which one way to go between the ones you
outline here and, apparently, ended up with the worst possible
combination, i.e., something in the middle! :-P
> Or alternately (which is what I was expecting when I saw it was
> 'flags'), shouldn't it allow you to set both at the same time? (i.e.,
> take away the 'else' here?)
>
Indeed. I'll take this path.
> > else
> > {
> > - ret = cpumask_to_xenctl_bitmap(
> > - &op->u.vcpuaffinity.cpumap, v->cpu_hard_affinity);
> > + if ( op->u.vcpuaffinity.flags & XEN_VCPUAFFINITY_HARD )
> > + ret = cpumask_to_xenctl_bitmap(
> > + &op->u.vcpuaffinity.cpumap, v->cpu_hard_affinity);
> > + else if ( op->u.vcpuaffinity.flags & XEN_VCPUAFFINITY_SOFT )
> > + ret = cpumask_to_xenctl_bitmap(
> > + &op->u.vcpuaffinity.cpumap, v->cpu_soft_affinity);
> > + else
> > + ret = -EINVAL;
>
> Asking for both the hard and soft affinities at the same time shouldn't
> return just the hard affinity. It should either return an error, or do
> something interesting like return the intersection of the two.
>
Right again. Given what we said above, I think I'll go for the
intersection.
> Other than that, I think this looks good.
>
Cool, I'll respin with these changes ASAP.
Thanks and Regards,
Dario
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |