2757a71c31
There was a scheduling problem of the m32r SMP kernel; A process rarely stopped and gave no responding but the other process have been handled by the other CPU still lives, then if we did something in the other terminal or something like that, the stopped process came back to life and continued its operation... (ex. LMbench: lat_sig) In the m32r SMP kernel, a local-timer event is delivered by using an IPI(inter processor interrupts); LOCAL_TIMER_IPI. And a function smp_send_timer() is prepared to send the LOCAL_TIMER_IPI from the current CPU to the other CPUs. The funtion smp_send_timer() was placed and used in do_IRQ() in former times (before 2.6.10-rc3-mm1 kernel), however, it was unintentionally removed when arch/m32r/kernel/irq.c was modified to employ the generic hardirq framework (CONFIG_GENERIC_HARDIRQ) in my previous patch. [PATCH 2.6.10-rc3-mm1] m32r: Use generic hardirq framework http://www.ussg.iu.edu/hypermail/linux/kernel/0412.2/0358.html The following patch fixes the above problem. Signed-off-by: Hitoshi Yamamoto <hitoshiy@isl.melco.co.jp> Signed-off-by: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> |
||
---|---|---|
.. | ||
align.c | ||
entry.S | ||
head.S | ||
init_task.c | ||
io_m32700ut.c | ||
io_mappi.c | ||
io_mappi2.c | ||
io_mappi3.c | ||
io_oaks32r.c | ||
io_opsput.c | ||
io_usrv.c | ||
irq.c | ||
m32r_ksyms.c | ||
Makefile | ||
module.c | ||
process.c | ||
ptrace.c | ||
semaphore.c | ||
setup.c | ||
setup_m32700ut.c | ||
setup_mappi.c | ||
setup_mappi2.c | ||
setup_mappi3.c | ||
setup_oaks32r.c | ||
setup_opsput.c | ||
setup_usrv.c | ||
signal.c | ||
smp.c | ||
smpboot.c | ||
sys_m32r.c | ||
time.c | ||
traps.c | ||
vmlinux.lds.S |