Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754010AbbELVF7 (ORCPT ); Tue, 12 May 2015 17:05:59 -0400 Received: from mail-am1on0079.outbound.protection.outlook.com ([157.56.112.79]:21010 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753633AbbELVF4 (ORCPT ); Tue, 12 May 2015 17:05:56 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none; Message-ID: <55526B20.10409@ezchip.com> Date: Tue, 12 May 2015 17:05:36 -0400 From: Chris Metcalf User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Ingo Molnar CC: Steven Rostedt , Frederic Weisbecker , Andrew Morton , , Gilad Ben Yossef , Peter Zijlstra , Rik van Riel , Tejun Heo , Thomas Gleixner , Christoph Lameter , "Srivatsa S. Bhat" , , , Subject: Re: CONFIG_ISOLATION=y References: <20150508172210.559830a9@gandalf.local.home> <554D428E.6020702@ezchip.com> <20150508161909.308d60e21f6b83b897174276@linux-foundation.org> <20150509070538.GA9413@gmail.com> <20150511085759.71deeb64@gandalf.local.home> <20150511171916.GN6776@linux.vnet.ibm.com> <20150511102744.9ebb2d05a7e8b457d03430bf@linux-foundation.org> <20150511173305.GC32512@lerouge> <20150511140009.1f7bcf07@gandalf.local.home> <5550F077.6030906@ezchip.com> <20150512091032.GA10138@gmail.com> In-Reply-To: <20150512091032.GA10138@gmail.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [12.216.194.146] X-ClientProxiedBy: BN3PR09CA0005.namprd09.prod.outlook.com (25.160.111.143) To HE1PR02MB0780.eurprd02.prod.outlook.com (25.161.118.144) X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR02MB0780; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:HE1PR02MB0780;BCL:0;PCL:0;RULEID:;SRVR:HE1PR02MB0780; X-Forefront-PRVS: 0574D4712B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(57704003)(51704005)(377454003)(479174004)(24454002)(65816999)(76176999)(54356999)(42186005)(50986999)(36756003)(46102003)(86362001)(15975445007)(77096005)(19580395003)(19580405001)(83506001)(122386002)(47776003)(40100003)(66066001)(65956001)(62966003)(77156002)(87976001)(23746002)(4001350100001)(2950100001)(92566002)(93886004)(33656002)(189998001)(50466002)(5001960100002)(110136002)(21314002)(18886065003);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR02MB0780;H:[10.7.0.41];FPR:;SPF:None;MLV:sfv;LANG:en; X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2015 21:05:51.2604 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR02MB0780 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3369 Lines: 68 On 05/12/2015 05:10 AM, Ingo Molnar wrote: > * Chris Metcalf wrote: > >> - ISOLATION (Frederic). I like this but it conflicts with other uses >> of "isolation" in the kernel: cgroup isolation, lru page isolation, >> iommu isolation, scheduler isolation (at least it's a superset of >> that one), etc. Also, we're not exactly isolating a task - often >> a "dataplane" app consists of a bunch of interacting threads in >> userspace, so not exactly isolated. So perhaps it's too confusing. > So I'd vote for Frederic's CONFIG_ISOLATION=y, mostly because this is > a high level kernel feature, so it won't conflict with isolation > concepts in lower level subsystems such as IOMMU isolation - and other > higher level features like scheduler isolation are basically another > partial implementation we want to merge with all this... > > nohz, RCU tricks, watchdog defaults, isolcpus and various other > measures to keep these CPUs and workloads as isolated as possible > are (or should become) components of this high level concept. > > Ideally CONFIG_ISOLATION=y would be a kernel feature that has almost > zero overhead on normal workloads and on non-isolated CPUs, so that > Linux distributions can enable it. Using CONFIG_CPU_ISOLATION to capture all this stuff instead of making CONFIG_NO_HZ_FULL do it seems plausible for naming. However, this feels like just bombing the current naming to this new name, right? I'd like to argue that this is orthogonal to adding new isolation functionality into no_hz_full, as my patch series has been doing. Perhaps we can defer this to a follow-up patch series? I'm happy to do the work but I'm not sure we want to bundle all that churn into the current patch series under consideration. I can use cpu_isolation_xxx for naming in the current patch series so we don't have to come back and bomb that later. > Enabling CONFIG_ISOLATION=y should be the only 'kernel config' step > needed: just like cpusets, the configuration of isolated CPUs should > be a completely boot option free excercise that can be dynamically > done and undone by the administrator via an intuitive interface. Eventually isolation can be runtime-enabled, but for now I think it makes sense to be boot-enabled. As Frederic suggested, we can arrange full nohz to be runtime toggled in the future. I agree that it should be reasonable to compile it in by default. On 05/12/2015 07:48 AM, Peter Zijlstra wrote: > But why do we need a CONFIG flag for something that has no content? > > That is, I do not see anything much; except the 'I want to stay in > userspace and kill me otherwise' flag, and I'm not sure that warrants a > CONFIG flag like this. > > Other than that, its all a combination of NOHZ_FULL and cpusets/isolcpus > and whatnot. There are three major pieces here - one is the STRICT piece that you allude to, but there is also the piece where we quiesce tasks in the kernel until no timer interrupts are pending, and the piece that allows easy debugging of stray IRQs etc to isolated cpus. -- Chris Metcalf, EZChip Semiconductor http://www.ezchip.com -- 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/