2003-02-17 08:07:18

by Zwane Mwaikambo

[permalink] [raw]
Subject: [PATCH][2.5][0/5] CPU Hotplug 2.5.61 update + fixes

Makefile | 2
arch/i386/kernel/irq.c | 18 +++
arch/i386/kernel/process.c | 39 +++++++-
arch/i386/kernel/smp.c | 18 +++
arch/i386/kernel/smpboot.c | 66 ++++++++++++--
fs/buffer.c | 16 +++
include/asm-generic/topology.h | 3
include/asm-i386/smp.h | 4
include/linux/brlock.h | 1
include/linux/mmzone.h | 1
include/linux/sched.h | 3
include/linux/smp.h | 24 +----
kernel/Makefile | 3
kernel/cpu.c | 193 ++++++++++++++++++++++++++++++++++++++++-
kernel/rcupdate.c | 67 ++++++++++++++
kernel/sched.c | 190 ++++++++++++++++++++++++++++++++--------
kernel/softirq.c | 70 +++++++++++++-
kernel/timer.c | 39 ++++++++
kernel/workqueue.c | 137 +++++++++++++++++++++--------
mm/slab.c | 39 ++++++++
mm/vmscan.c | 44 +++++++++
net/core/dev.c | 64 +++++++++++++
22 files changed, 925 insertions(+), 116 deletions(-)

CPU Hotplug 2.5.61

changes from current cpu hotplug tree:

- fixed build for UP w/ CONFIG_HOTPLUG - Stephen Hemminger

kernel/rcupdate.c
- added RCU CPU_OFFLINE handling which moves all current and pending callbacks from the dying
cpu to a global queue, which is cleared a callback at a time in the rcu_softirq path.
function(s) added:
rcu_move_batch

kernel/timer.c
- We now migrate timers from the dying cpu to the current one.
function(s) added:
migrate_timers_from

mm/slab.c
- Made timer deletion happen on the OFFLINE path and be carried out by the owning cpu

arch/i386/kernel/smpboot.c
- Removed dying cpu from irq_affinity masks in __cpu_die

arch/i386/kernel/irq.c
- Added helper to remove dying cpu from irq affinity masks, this is really a generic function
and could be placed elsewhere given when we get a generic irq layer.
function(s) added:
migrate_irqs_from

All changes have been tested on 4 and 8way i386 (Courtesy of OSDL), although i'm not
claiming stability at this stage (this is a review patch) we have managed
to offline/online whilst doing a kernel compile (make -j8), however there
are problems with the networking offline code which trigger when
offlining cpus under load.

Problematic config options:
CONFIG_PREEMPT - causes premature scheduling

Zwane
--
function.linuxpower.ca