lkml.org 
[lkml]   [2012]   [Jun]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC patch V2 0/7] Per cpu thread hotplug infrastructure
    On Fri, Jun 15, 2012 at 02:13:19PM -0000, Thomas Gleixner wrote:
    > The following series implements the infrastructure for parking and
    > unparking kernel threads to avoid the full teardown and fork on cpu
    > hotplug operations along with management infrastructure for hotplug
    > and users.
    >
    > Changes since V1:
    >
    > - Addressed the review comments
    > - Fixed a missing state update in parkme (reported by Paul)
    > - Simplified rcu_yield()
    > - Added Pauls RCU conversion
    >
    > Full diffstat below. Due to the RCU cleanup we now remove more code
    > than we add. :)

    ;-)

    With the exception of a build error for CONFIG_SMP=y:

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

    I finally tracked down a hang, which turned out to be an unrelated bug
    of mine that happened to be triggered more reliably with these patches
    applied, hence the delay. Sigh!

    For CONFIG_SMP=y:

    softirq.c:(.text+0xa6d3): undefined reference to `smpboot_thread_check_parking'
    softirq.c:(.init.text+0x4aa): undefined reference to `smpboot_register_percpu_thread'
    softirq.c:(.text+0xb763): undefined reference to `smpboot_thread_check_parking'
    softirq.c:(.init.text+0x48e): undefined reference to `smpboot_register_percpu_thread'

    My approach would be to make smpboot.o be unconditionally created by
    kernel/Makefile and to use conditional compilation as needed. The real
    question is whether we want to allow parking in !SMP kernels. I cannot
    see why we wouldn't -- there might be other reasons to park besides
    CPU hotplug. Thoughts?

    Thanx, Paul

    > Thanks,
    >
    > tglx
    > ---
    > drivers/infiniband/hw/ehca/ehca_irq.c | 240 ++++++++-------------
    > drivers/infiniband/hw/ehca/ehca_irq.h | 5
    > include/linux/kthread.h | 11
    > include/linux/smpboot.h | 40 +++
    > kernel/cpu.c | 10
    > kernel/kthread.c | 184 ++++++++++++++--
    > kernel/rcutree.c | 12 -
    > kernel/rcutree.h | 15 -
    > kernel/rcutree_plugin.h | 375 +++++-----------------------------
    > kernel/rcutree_trace.c | 3
    > kernel/smpboot.c | 206 ++++++++++++++++++
    > kernel/smpboot.h | 4
    > kernel/softirq.c | 84 +------
    > kernel/watchdog.c | 232 ++++++---------------
    > 14 files changed, 678 insertions(+), 743 deletions(-)
    >



    \
     
     \ /
      Last update: 2012-06-27 02:21    [W:0.029 / U:0.320 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site