aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/sched_sedf.c
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-02-21 16:13:49 +0000
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-02-21 16:13:49 +0000
commitc6c62d99d860ff01493f1aa3530e517f6ba7de6d (patch)
tree8bb47c79f7ff771896089a6adeebd3a3fa8bbcd6 /xen/common/sched_sedf.c
parent39475b429d06a097bc528468a80c1bee2eb38a5b (diff)
downloadxen-c6c62d99d860ff01493f1aa3530e517f6ba7de6d.tar.gz
xen-c6c62d99d860ff01493f1aa3530e517f6ba7de6d.tar.bz2
xen-c6c62d99d860ff01493f1aa3530e517f6ba7de6d.zip
Use RCU for domain_list and domain_hash.
Signed-off-by: Jose Renato Santos <jsantos@hpl.hp.com> Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/common/sched_sedf.c')
-rw-r--r--xen/common/sched_sedf.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/xen/common/sched_sedf.c b/xen/common/sched_sedf.c
index 5381fcb3ca..8f79dd23b4 100644
--- a/xen/common/sched_sedf.c
+++ b/xen/common/sched_sedf.c
@@ -1277,6 +1277,7 @@ static void sedf_dump_cpu_state(int i)
loop = 0;
printk("\nnot on Q\n");
+ rcu_read_lock(&domlist_read_lock);
for_each_domain ( d )
{
for_each_vcpu(d, ed)
@@ -1288,6 +1289,7 @@ static void sedf_dump_cpu_state(int i)
}
}
}
+ rcu_read_unlock(&domlist_read_lock);
}
@@ -1298,8 +1300,9 @@ static int sedf_adjust_weights(struct xen_domctl_scheduler_op *cmd)
struct domain *d;
int sumw[NR_CPUS] = { 0 };
s_time_t sumt[NR_CPUS] = { 0 };
-
+
/* Sum across all weights. */
+ rcu_read_lock(&domlist_read_lock);
for_each_domain( d )
{
for_each_vcpu( d, p )
@@ -1323,8 +1326,10 @@ static int sedf_adjust_weights(struct xen_domctl_scheduler_op *cmd)
}
}
}
+ rcu_read_unlock(&domlist_read_lock);
/* Adjust all slices (and periods) to the new weight. */
+ rcu_read_lock(&domlist_read_lock);
for_each_domain( d )
{
for_each_vcpu ( d, p )
@@ -1341,6 +1346,7 @@ static int sedf_adjust_weights(struct xen_domctl_scheduler_op *cmd)
}
}
}
+ rcu_read_unlock(&domlist_read_lock);
return 0;
}