From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S968889AbdDSSUe (ORCPT ); Wed, 19 Apr 2017 14:20:34 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:59519 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S968907AbdDSSUa (ORCPT ); Wed, 19 Apr 2017 14:20:30 -0400 Date: Wed, 19 Apr 2017 20:20:24 +0200 (CEST) From: Thomas Gleixner To: Mark Rutland cc: LKML , Peter Zijlstra , Ingo Molnar , Steven Rostedt , Sebastian Siewior , Will Deacon , Russell King , linux-arm-kernel@lists.infradead.org Subject: Re: [patch V2 11/24] ARM/hw_breakpoint: Use cpuhp_setup_state_cpuslocked() In-Reply-To: <20170419175454.GM27829@leverpostej> Message-ID: References: <20170418170442.665445272@linutronix.de> <20170418170553.274229815@linutronix.de> <20170419175454.GM27829@leverpostej> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 19 Apr 2017, Mark Rutland wrote: > Hi, > > On Tue, Apr 18, 2017 at 07:04:53PM +0200, Thomas Gleixner wrote: > > From: Sebastian Andrzej Siewior > > > > arch_hw_breakpoint_init() holds get_online_cpus() while registerring the > > hotplug callbacks. > > > > cpuhp_setup_state() invokes get_online_cpus() as well. This is correct, but > > prevents the conversion of the hotplug locking to a percpu rwsem. > > > > Use cpuhp_setup_state_cpuslocked() to avoid the nested call. > > > > Signed-off-by: Sebastian Andrzej Siewior > > Signed-off-by: Thomas Gleixner > > Cc: Will Deacon > > Cc: Mark Rutland > > Cc: Russell King > > Cc: linux-arm-kernel@lists.infradead.org > > > > --- > > arch/arm/kernel/hw_breakpoint.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > --- a/arch/arm/kernel/hw_breakpoint.c > > +++ b/arch/arm/kernel/hw_breakpoint.c > > @@ -1098,8 +1098,9 @@ static int __init arch_hw_breakpoint_ini > > * assume that a halting debugger will leave the world in a nice state > > * for us. > > */ > > - ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "arm/hw_breakpoint:online", > > - dbg_reset_online, NULL); > > + ret = cpuhp_setup_state_cpuslocked(CPUHP_AP_ONLINE_DYN, > > + "arm/hw_breakpoint:online", > > + dbg_reset_online, NULL); > > Given the callsite, this particular change looks ok to me. So FWIW: > > Acked-by: Mark Rutland > > However, as a more general note, the changes make the API feel odd. per > their current names, {get,put}_online_cpus() sound/feel like refcounting > ops, which should be able to nest. > > Is there any chance these could get a better name, e.g. > {lock,unlock}_online_cpus(), so as to align with _cpuslocked? Yes, that's a follow up cleanup patch treewide once this hit Linus tree. Thanks, tglx