From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751078AbbBUMr1 (ORCPT ); Sat, 21 Feb 2015 07:47:27 -0500 Received: from [198.137.202.9] ([198.137.202.9]:47144 "EHLO bombadil.infradead.org" rhost-flags-FAIL-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1750856AbbBUMrZ (ORCPT ); Sat, 21 Feb 2015 07:47:25 -0500 Date: Sat, 21 Feb 2015 13:46:59 +0100 From: Peter Zijlstra To: Nicolas Pitre Cc: linux-kernel@vger.kernel.org, mingo@kernel.org, rjw@rjwysocki.net, tglx@linutronix.de, Preeti U Murthy Subject: Re: [PATCH 32/35] clockevents: Fix cpu down race for hrtimer based broadcasting Message-ID: <20150221124659.GG23367@worktop.ger.corp.intel.com> References: <20150216121435.203983131@infradead.org> <20150216122413.880378334@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.22.1 (2013-10-16) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Feb 19, 2015 at 12:51:52PM -0500, Nicolas Pitre wrote: > > This breaks the b.L switcher disabling code which essentially does: > > static void bL_switcher_restore_cpus(void) > { > int i; > > for_each_cpu(i, &bL_switcher_removed_logical_cpus) { > struct device *cpu_dev = get_cpu_device(i); > int ret = device_online(cpu_dev); > if (ret) > dev_err(cpu_dev, "switcher: unable to restore CPU\n"); > } > } Just so I understand, this device_{on,ofF}line() stuff is basically just cpu_{up,down}() but obfuscated through the device model nonsense, right? Also it seems bL_switcher_enable() relies on lock_device_hotplug() to stabilize the online cpu mask; it does not, only the hotplug lock does. I'm having a very hard time trying to follow wth this thing all is doing; its using hotplug but its also doing magic with cpu_suspend(). /me confused..