ia64/xen-unstable

changeset 8721:80890ad194b1

No need for the rcu-nohz patch any more, as rcupdate.c was
made tickless-mode aware long ago. We do need to be a bit
more careful about ordering in stop_hz_timer() though.

Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Wed Feb 01 00:20:29 2006 +0100 (2006-02-01)
parents e9c1d88ab5d0
children f081663ba941
files linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c
line diff
     1.1 --- a/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c	Tue Jan 31 22:49:59 2006 +0000
     1.2 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c	Wed Feb 01 00:20:29 2006 +0100
     1.3 @@ -850,8 +850,9 @@ void stop_hz_timer(void)
     1.4  	unsigned int cpu = smp_processor_id();
     1.5  	unsigned long j;
     1.6  	
     1.7 -	/* s390 does this /before/ checking rcu_pending(). We copy them. */
     1.8 +	/* We must do this /before/ checking rcu_pending(). */
     1.9  	cpu_set(cpu, nohz_cpu_mask);
    1.10 +	smp_mb();
    1.11  
    1.12  	/* Leave ourselves in 'tick mode' if rcu or softirq pending. */
    1.13  	if (rcu_pending(cpu) || local_softirq_pending()) {
     2.1 --- a/patches/linux-2.6.14/rcu-nohz.patch	Tue Jan 31 22:49:59 2006 +0000
     2.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.3 @@ -1,16 +0,0 @@
     2.4 -diff -pru ../pristine-linux-2.6.14/kernel/rcupdate.c ./kernel/rcupdate.c
     2.5 ---- ../pristine-linux-2.6.14/kernel/rcupdate.c	2005-10-28 01:02:08.000000000 +0100
     2.6 -+++ ./kernel/rcupdate.c	2006-01-31 16:04:36.000000000 +0000
     2.7 -@@ -227,8 +227,11 @@ static void rcu_start_batch(struct rcu_c
     2.8 -  */
     2.9 - static void cpu_quiet(int cpu, struct rcu_ctrlblk *rcp, struct rcu_state *rsp)
    2.10 - {
    2.11 -+	cpumask_t mask;
    2.12 -+
    2.13 - 	cpu_clear(cpu, rsp->cpumask);
    2.14 --	if (cpus_empty(rsp->cpumask)) {
    2.15 -+	cpus_andnot(mask, rsp->cpumask, nohz_cpu_mask);
    2.16 -+	if (cpus_empty(mask)) {
    2.17 - 		/* batch completed ! */
    2.18 - 		rcp->completed = rcp->cur;
    2.19 - 		rcu_start_batch(rcp, rsp, 0);