lkml.org 
[lkml]   [2012]   [Jun]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC PATCH 00/10] Cleanup ipi_call_lock[_irq]()/ipi_call_unlock[_irq]()
    On Tue, May 29, 2012 at 03:15:55PM +0800, Yong Zhang wrote:
    > As discussed with Srivatsa [1], it seems there is no need to keep
    > ipi_call_[un]lock_irq() when cpu bring-up/down. Because:
    >
    > 1) call_function.lock used in smp_call_function_many() is just to protect
    > call_function.queue and &data->refs, cpu_online_mask is outside of the
    > lock. And it's not necessary to protect cpu_online_mask,
    > because data->cpumask is pre-calculate and even if a cpu is brougt up
    > when calling arch_send_call_function_ipi_mask(), it's harmless because
    > validation test in generic_smp_call_function_interrupt() will take care
    > of it.
    >
    > 2) For cpu down issue, stop_machine() will guarantee that no concurrent
    > smp_call_fuction() is processing.
    >
    > In short it's more likely that keeping ipi_call_[un]lock() is leftover
    > before we introduce generic smp helper. This patchset is just to clean
    > things up.

    This series gets rid of the call_function lockdep splat I was seeing,
    very good!

    Tested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

    > [1] http://marc.info/?l=linux-kernel&m=133766786814484&w=2
    >
    > Yong Zhang (10):
    > hexagon: smp: remove call to ipi_call_lock()/ipi_call_unlock()
    > mn10300: smp: remove call to ipi_call_lock()/ipi_call_unlock()
    > parisc: smp: remove call to ipi_call_lock()/ipi_call_unlock()
    > S390: smp: remove call to ipi_call_lock()/ipi_call_unlock()
    > tile: smp: remove call to ipi_call_lock()/ipi_call_unlock()
    > x86: smp: remove call to ipi_call_lock()/ipi_call_unlock()
    > ia64: smp: remove call to ipi_call_lock_irq()/ipi_call_unlock_irq()
    > SPARC: smp: remove call to ipi_call_lock_irq()/ipi_call_unlock_irq()
    > POWERPC: smp: remove call to ipi_call_lock()/ipi_call_unlock()
    > smp: remove ipi_call_lock[_irq]()/ipi_call_unlock[_irq]()
    >
    > arch/hexagon/kernel/smp.c | 2 --
    > arch/ia64/kernel/smpboot.c | 2 --
    > arch/mn10300/kernel/smp.c | 2 --
    > arch/parisc/kernel/smp.c | 2 --
    > arch/powerpc/kernel/smp.c | 2 --
    > arch/s390/kernel/smp.c | 2 --
    > arch/sparc/kernel/smp_64.c | 6 ++----
    > arch/tile/kernel/smpboot.c | 10 ----------
    > arch/x86/kernel/smpboot.c | 9 ---------
    > arch/x86/xen/smp.c | 2 --
    > include/linux/smp.h | 4 ----
    > kernel/smp.c | 20 --------------------
    > 12 files changed, 2 insertions(+), 61 deletions(-)
    >
    > --
    > 1.7.5.4
    >



    \
     
     \ /
      Last update: 2012-06-16 19:01    [W:0.041 / U:0.292 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site