aboutsummaryrefslogtreecommitdiffstats
path: root/patches
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-05-30 10:18:30 +0000
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2005-05-30 10:18:30 +0000
commit1b3ead1336bc92ee90a23a38f3432227b20b5b22 (patch)
tree0df010006a6864e6222f6af960117210946e7888 /patches
parentc83e3c7ddb9ba20a381898ef9f8cdeb3c258b551 (diff)
downloadxen-1b3ead1336bc92ee90a23a38f3432227b20b5b22.tar.gz
xen-1b3ead1336bc92ee90a23a38f3432227b20b5b22.tar.bz2
xen-1b3ead1336bc92ee90a23a38f3432227b20b5b22.zip
bitkeeper revision 1.1159.258.154 (429ae8764I9WsS60DkRARFDRTCFT1Q)
Fix Xen idle loop to enter/exit tickless mode in same way as s390, which interfaces properly with the RCU subsystem. This includes a patch that fixes a race in the generic RCU code: it was created by IBM for s390, and is being pushed upstream by them. Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'patches')
-rw-r--r--patches/linux-2.6.11/rcu-nohz.patch16
1 files changed, 16 insertions, 0 deletions
diff --git a/patches/linux-2.6.11/rcu-nohz.patch b/patches/linux-2.6.11/rcu-nohz.patch
new file mode 100644
index 0000000000..d7bafb3a62
--- /dev/null
+++ b/patches/linux-2.6.11/rcu-nohz.patch
@@ -0,0 +1,16 @@
+diff -ur linux-2.6.11/kernel/rcupdate.c linux-2.6.11-rcu/kernel/rcupdate.c
+--- linux-2.6.11/kernel/rcupdate.c 2005-05-30 10:51:41 +01:00
++++ linux-2.6.11-rcu/kernel/rcupdate.c 2005-05-30 10:53:53 +01:00
+@@ -202,8 +202,11 @@
+ */
+ static void cpu_quiet(int cpu, struct rcu_ctrlblk *rcp, struct rcu_state *rsp)
+ {
++ cpumask_t mask;
++
+ cpu_clear(cpu, rsp->cpumask);
+- if (cpus_empty(rsp->cpumask)) {
++ cpus_andnot(mask, rsp->cpumask, nohz_cpu_mask);
++ if (cpus_empty(mask)) {
+ /* batch completed ! */
+ rcp->completed = rcp->cur;
+ rcu_start_batch(rcp, rsp, 0);