Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757353AbbBELJH (ORCPT ); Thu, 5 Feb 2015 06:09:07 -0500 Received: from pandora.arm.linux.org.uk ([78.32.30.218]:49936 "EHLO pandora.arm.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756748AbbBELJG (ORCPT ); Thu, 5 Feb 2015 06:09:06 -0500 Date: Thu, 5 Feb 2015 11:08:56 +0000 From: Russell King - ARM Linux To: Krzysztof Kozlowski Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, paulmck@linux.vnet.ibm.com, Arnd Bergmann , Mark Rutland , Bartlomiej Zolnierkiewicz , Marek Szyprowski , Stephen Boyd , Catalin Marinas , Will Deacon Subject: Re: [PATCH v2] ARM: Don't use complete() during __cpu_die Message-ID: <20150205110856.GM8656@n2100.arm.linux.org.uk> References: <1423131270-24047-1-git-send-email-k.kozlowski@samsung.com> <20150205105035.GL8656@n2100.arm.linux.org.uk> <1423134058.25197.9.camel@AMDC1943> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1423134058.25197.9.camel@AMDC1943> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2018 Lines: 46 On Thu, Feb 05, 2015 at 12:00:58PM +0100, Krzysztof Kozlowski wrote: > On czw, 2015-02-05 at 10:50 +0000, Russell King - ARM Linux wrote: > > On Thu, Feb 05, 2015 at 11:14:30AM +0100, Krzysztof Kozlowski wrote: > > > The complete() should not be used on offlined CPU. Rewrite the > > > wait-complete mechanism with wait_on_bit_timeout(). > > > > Yuck. > > > > I think that the IPI idea would be far better, and a much smaller patch. > > We can continue using the completions, but instead of running the > > completion on the dying CPU, the dying CPU triggers an IPI which does > > the completion on the requesting CPU. > > > > You're modifying arch/arm/kernel/smp.c, so you just hook it directly > > into the IPI mechanism without any registration required. > > > > We can also kill the second cache flush by the dying CPU - as we're > > not writing to memory anymore by calling complete() after the first > > cache flush, so this will probably make CPU hotplug fractionally faster > > too. > > > > (You'll get some fuzz with this patch as I have the NMI backtrace stuff > > in my kernel.) > > > > Something like this - only build tested so far (waiting for the compile > > to finish...): > > I am looking into IPI also. Maybe just smp_call_function_any() would be > enough? I really don't like that idea. Let's keep it simple, and avoid calling code unnecessarily which could end up with RCU issues - and avoid the need for a second L1 cache flush. This does seem to work on iMX6 (if you ignore the lockdep splat caused by that frigging CMA lock - yes, that issue I reported earlier last year still exists and is still unsolved, which is really disgusting.) -- FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/