|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] switch to dynamically allocated cpumask in domain_update_node_affinity()
# HG changeset patch
# User Juergen Gross <juergen.gross@xxxxxxxxxxxxxx>
# Date 1327414840 0
# Node ID 455a50622fb2a135e6bbfce8705fddc8705fe2d7
# Parent 3df3a0a95551a65ae0c29a481f0f756b63a3f37c
switch to dynamically allocated cpumask in domain_update_node_affinity()
cpumasks should rather be allocated dynamically.
Signed-off-by: juergen.gross@xxxxxxxxxxxxxx
Committed-by: Keir Fraser <keir@xxxxxxx>
---
diff -r 3df3a0a95551 -r 455a50622fb2 xen/common/domain.c
--- a/xen/common/domain.c Tue Jan 24 14:19:58 2012 +0000
+++ b/xen/common/domain.c Tue Jan 24 14:20:40 2012 +0000
@@ -220,6 +220,7 @@
INIT_PAGE_LIST_HEAD(&d->xenpage_list);
spin_lock_init(&d->node_affinity_lock);
+ d->node_affinity = NODE_MASK_ALL;
spin_lock_init(&d->shutdown_lock);
d->shutdown_code = -1;
@@ -333,23 +334,27 @@
void domain_update_node_affinity(struct domain *d)
{
- cpumask_t cpumask;
+ cpumask_var_t cpumask;
nodemask_t nodemask = NODE_MASK_NONE;
struct vcpu *v;
unsigned int node;
- cpumask_clear(&cpumask);
+ if ( !zalloc_cpumask_var(&cpumask) )
+ return;
+
spin_lock(&d->node_affinity_lock);
for_each_vcpu ( d, v )
- cpumask_or(&cpumask, &cpumask, v->cpu_affinity);
+ cpumask_or(cpumask, cpumask, v->cpu_affinity);
for_each_online_node ( node )
- if ( cpumask_intersects(&node_to_cpumask(node), &cpumask) )
+ if ( cpumask_intersects(&node_to_cpumask(node), cpumask) )
node_set(node, nodemask);
d->node_affinity = nodemask;
spin_unlock(&d->node_affinity_lock);
+
+ free_cpumask_var(cpumask);
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |