• Hirokazu Takata's avatar
    [PATCH] m32r: Fix local-timer event handling · 2757a71c
    Hirokazu Takata authored
    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: default avatarHitoshi Yamamoto <hitoshiy@isl.melco.co.jp>
    Signed-off-by: default avatarHirokazu Takata <takata@linux-m32r.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    2757a71c
time.c 8.09 KB