Messages in this thread | | | Date | Tue, 26 Jun 2012 16:26:20 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [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(-) >
| |