From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756739Ab2DTO1h (ORCPT ); Fri, 20 Apr 2012 10:27:37 -0400 Received: from bedivere.hansenpartnership.com ([66.63.167.143]:45865 "EHLO bedivere.hansenpartnership.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756359Ab2DTO1f (ORCPT ); Fri, 20 Apr 2012 10:27:35 -0400 Message-ID: <1334932050.13001.2.camel@dabdike> Subject: Re: [patch 00/18] SMP: Boot and CPU hotplug refactoring - Part 1 From: James Bottomley To: Thomas Gleixner Cc: LKML , linux-arch@vger.kernel.org, Peter Zijlstra , Rusty Russell , "Paul E. McKenney" , Ingo Molnar , "Srivatsa S. Bhat" Date: Fri, 20 Apr 2012 18:27:30 +0400 In-Reply-To: <20120420122120.097464672@linutronix.de> References: <20120420122120.097464672@linutronix.de> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.1 Content-Transfer-Encoding: 7bit Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2012-04-20 at 13:05 +0000, Thomas Gleixner wrote: > Dear all, > > I'm working on refactoring the SMP boot and CPU hotplug implementation. > > The current code has evolved over time into a conglomerate of > warts. My main goals are to: > > - reduce the architecture code by moving repeating constructs to the > core > > - redesigning the handling of per cpu threads. There is no point to > tear down the threads just to create them again. > > - restructuring the notifier facility into a proper tree with > dependencies to avoid the gazillion of callbacks and moving > setup/teardown code into the context of the upcoming/dying cpu > > The motivation behind this work is the cpu hotplug nightmare which we > are facing in the RT kernel and the requests from several groups > (e.g. ARM) to make hotplug more lightweight and faster. > > This first part moves the idle thread management for non-boot cpus > into the core. fork_idle() is called in a workqueue as it is > implemented in a few architectures already. This is necessary when not > all cpus are brought up by the early boot code as otherwise we would > take a ref on the user task VM of the thread which brings the cpu up > via the sysfs interface. > > This converts all architectures except m32r, mn10300, tile and UM to > the new core facility. These architecture are calling fork_idle() in > the very early boot code in smp_prepare_cpus() for unknown reasons. > I haven't analyzed yet, whether this is on purpose or can be moved > over to the generic facility. It'd be nice if the responsible maintainers > could look into that as well. Do you have a git tree we can try? If you do, I promise to test as soon as I can get my parisc systems nursed back to health after their apparently trying voyage across the atlantic. James