[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] Reflect cpupool in numa node affinity



On Mon, 2012-01-23 at 09:51 +0000, Juergen Gross wrote:
> @@ -365,15 +366,21 @@ void domain_update_node_affinity(struct 
>  void domain_update_node_affinity(struct domain *d)
>  {
>      cpumask_t cpumask;
> +    cpumask_t online_affinity;
> +    cpumask_t *online;
>      nodemask_t nodemask = NODE_MASK_NONE;
>      struct vcpu *v;
>      unsigned int node;
>  
> +    online = (d->cpupool == NULL) ? &cpu_online_map : d->cpupool->cpu_valid;
>      cpumask_clear(&cpumask);
>      spin_lock(&d->node_affinity_lock);
>  
>      for_each_vcpu ( d, v )
> -        cpumask_or(&cpumask, &cpumask, v->cpu_affinity);
> +    {
> +        cpumask_and(&online_affinity, v->cpu_affinity, online);
> +        cpumask_or(&cpumask, &cpumask, &online_affinity);
> +    }
>  
>      for_each_online_node ( node )
>          if ( cpumask_intersects(&node_to_cpumask(node), &cpumask) ) 

Is there any possibility that the addition of the cpumask_and clause
could result in the empty set?

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.