Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754483AbYFBV71 (ORCPT ); Mon, 2 Jun 2008 17:59:27 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752009AbYFBV7U (ORCPT ); Mon, 2 Jun 2008 17:59:20 -0400 Received: from wolverine02.qualcomm.com ([199.106.114.251]:16606 "EHLO wolverine02.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751593AbYFBV7R (ORCPT ); Mon, 2 Jun 2008 17:59:17 -0400 X-IronPort-AV: E=McAfee;i="5200,2160,5308"; a="3447199" Message-ID: <48446D46.2010903@qualcomm.com> Date: Mon, 02 Jun 2008 14:59:34 -0700 From: Max Krasnyansky User-Agent: Thunderbird 2.0.0.14 (X11/20080501) MIME-Version: 1.0 To: Dimitri Sivanich CC: Paul Jackson , linux-kernel@vger.kernel.org, Con Kolivas , "Derek L. Fults" , devik , Dinakar Guniguntala , Emmanuel Pacaud , Frederik Deweerdt , Ingo Molnar , Matthew Dobson , Nick Piggin , rostedt@goodmis.org, Oleg Nesterov , "Paul E. McKenney" , Paul Menage , Peter Zijlstra , "Randy.Dunlap" , suresh.b.siddha@intel.com, Thomas Gleixner Subject: Re: Inquiry: Should we remove "isolcpus= kernel boot option? (may have realtime uses) References: <20080601213019.14ea8ef8.pj@sgi.com> <20080602164203.GA2477@sgi.com> <48443E66.6060205@qualcomm.com> <20080602214151.GA7072@sgi.com> In-Reply-To: <20080602214151.GA7072@sgi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2600 Lines: 58 Dimitri Sivanich wrote: > On Mon, Jun 02, 2008 at 11:39:34AM -0700, Max Krasnyansky wrote: >> Ah, I know exactly what you're talking about. However this is non-issue these >> days. In order to clear cpuN from all the timers and other things all you need >> to do is to bring that cpu off-line >> echo 0 > /sys/devices/cpu/cpuN/online >> and then bring it back online >> echo 1 > /sys/devices/cpu/cpuN/online > > Although it seemed like something of a hack, we experimented with this > previously and found that it didn't work reliably. I'm sure things > have gotten better, but will need to revisit. Yes it used to be somewhat unstable. These days it solid. I'm using it on a wide range of systems: uTCA Core2Duo, NUMA dual-Opteron, 8way Core2, etc. And things work as expected. I forgot to mention that it's not just timers. There are also work queues and delayed work that have similar side effects (ie they stick to the CPU they were originally scheduled on). Hotplug cleans all that stuff very nicely. btw I would not call it a hack. ie Using cpu hotplug for isolation purposes. By definition hotplug must be able to migrate _everything_ running on the cpuN when it goes off-line, otherwise it simply won't work. And that's exactly what we need for the isolation too (migrate everything running on a cpuN to other cpus). >> There are currently a couple of issues with scheduler domains and hotplug >> event handling. I do have the fix for them, and Paul had already acked it. > > Until a proven reliable method for doing this is firmly in place (as > firmly as anything is, anyway), I don't think we should be removing > the alternative. Agree. That's why I submitted the removal patch along with those fixes ;-). >> initialization). See my latest "default IRQ affinity" patch. > Nice idea. Thanx. >> Also isolcpus= conflicts with the scheduler domains created by the cpusets. > > What sort of conflict are we talking about? I assume once you've begun > setting up cpusets that include those cpus that you're intention is to change > the original behavior. That exactly where the conflict is. Lets say you boot with isolcpus=2 (ie cpu2 is not load balanced), then you add cpu2 along with cpu3 to cpuset N and enable load balancing in cpusetN. In that case cpu2 will still remain unbalanced which is definitely a wrong behaviour. Max -- 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/