[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Reflect cpupool in numa node affinity
On 01/23/2012 12:03 PM, Ian Campbell wrote: 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? No. v->cpu_affinity is set to all ones if: - the domain is moved to another cpupool - the last cpu which is set in v->cpu_affinity is removed from the cpupool the domain is assigned to Juergen -- Juergen Gross Principal Developer Operating Systems PDG ES&S SWE OS6 Telephone: +49 (0) 89 3222 2967 Fujitsu Technology Solutions e-mail: juergen.gross@xxxxxxxxxxxxxx Domagkstr. 28 Internet: ts.fujitsu.com D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |