ia64/xen-unstable

changeset 5202:da85abbfc7c0

bitkeeper revision 1.1592 (429ae8ff33cT5EmG9lUTaMO920vjKg)

Manual merge.
author kaf24@firebug.cl.cam.ac.uk
date Mon May 30 10:20:47 2005 +0000 (2005-05-30)
parents dd205ff2ce8a bc07e46f2e73
children a83e6617ca74
files .rootkeys linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c linux-2.6.11-xen-sparse/arch/xen/i386/kernel/time.c patches/linux-2.6.11/rcu-nohz.patch
line diff
     1.1 --- a/.rootkeys	Sun May 29 16:13:43 2005 +0000
     1.2 +++ b/.rootkeys	Mon May 30 10:20:47 2005 +0000
     1.3 @@ -471,6 +471,7 @@ 427261074Iy1MkbbqIV6zdZDWWx_Jg patches/l
     1.4  42372652KCUP-IOH9RN19YQmGhs4aA patches/linux-2.6.11/iomap.patch
     1.5  428359d4b3fDYtazwXi4UUmSWaOUew patches/linux-2.6.11/linux-2.6.11.10.patch
     1.6  4296fb998LGSWCcljGKbOCUv3h9uRQ patches/linux-2.6.11/net-csum.patch
     1.7 +429ae875I9ZrqrRDjGD34IC2kzDREw patches/linux-2.6.11/rcu-nohz.patch
     1.8  424f001e_M1Tnxc52rDrmCLelnDWMQ patches/linux-2.6.11/x86_64-linux.patch
     1.9  3f776bd1Hy9rn69ntXBhPReUFw9IEA tools/Makefile
    1.10  40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Rules.mk
     2.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c	Sun May 29 16:13:43 2005 +0000
     2.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c	Mon May 30 10:20:47 2005 +0000
     2.3 @@ -94,25 +94,18 @@ void enable_hlt(void)
     2.4  EXPORT_SYMBOL(enable_hlt);
     2.5  
     2.6  /* XXX XEN doesn't use default_idle(), poll_idle(). Use xen_idle() instead. */
     2.7 -extern int set_timeout_timer(void);
     2.8 +extern void stop_hz_timer(void);
     2.9 +extern void start_hz_timer(void);
    2.10  void xen_idle(void)
    2.11  {
    2.12 -	int cpu;
    2.13 -
    2.14  	local_irq_disable();
    2.15  
    2.16 -	cpu = smp_processor_id();
    2.17 -	if (rcu_pending(cpu))
    2.18 -		rcu_check_callbacks(cpu, 0);
    2.19 -
    2.20  	if (need_resched()) {
    2.21  		local_irq_enable();
    2.22 -	} else if (set_timeout_timer() == 0) {
    2.23 -		/* NB. Blocking reenable events in a race-free manner. */
    2.24 -		HYPERVISOR_block();
    2.25  	} else {
    2.26 -		local_irq_enable();
    2.27 -		HYPERVISOR_yield();
    2.28 +		stop_hz_timer();
    2.29 +		HYPERVISOR_block(); /* implicit local_irq_enable() */
    2.30 +		start_hz_timer();
    2.31  	}
    2.32  }
    2.33  
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/patches/linux-2.6.11/rcu-nohz.patch	Mon May 30 10:20:47 2005 +0000
     4.3 @@ -0,0 +1,16 @@
     4.4 +diff -ur linux-2.6.11/kernel/rcupdate.c linux-2.6.11-rcu/kernel/rcupdate.c
     4.5 +--- linux-2.6.11/kernel/rcupdate.c	2005-05-30 10:51:41 +01:00
     4.6 ++++ linux-2.6.11-rcu/kernel/rcupdate.c	2005-05-30 10:53:53 +01:00
     4.7 +@@ -202,8 +202,11 @@
     4.8 +  */
     4.9 + static void cpu_quiet(int cpu, struct rcu_ctrlblk *rcp, struct rcu_state *rsp)
    4.10 + {
    4.11 ++	cpumask_t mask;
    4.12 ++
    4.13 + 	cpu_clear(cpu, rsp->cpumask);
    4.14 +-	if (cpus_empty(rsp->cpumask)) {
    4.15 ++	cpus_andnot(mask, rsp->cpumask, nohz_cpu_mask);
    4.16 ++	if (cpus_empty(mask)) {
    4.17 + 		/* batch completed ! */
    4.18 + 		rcp->completed = rcp->cur;
    4.19 + 		rcu_start_batch(rcp, rsp, 0);