Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933691AbbLORro (ORCPT ); Tue, 15 Dec 2015 12:47:44 -0500 Received: from mail-lb0-f173.google.com ([209.85.217.173]:36849 "EHLO mail-lb0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933443AbbLORrl (ORCPT ); Tue, 15 Dec 2015 12:47:41 -0500 MIME-Version: 1.0 In-Reply-To: <20151215171518.GC8012@leverpostej> References: <20151215122238.GG16007@e106622-lin> <20151215133951.GY5727@sirena.org.uk> <20151215140135.GI31299@leverpostej> <20151215150813.GZ5727@sirena.org.uk> <20151215153218.GA7228@leverpostej> <20151215154651.GK16007@e106622-lin> <20151215155737.GB7619@leverpostej> <20151215162317.GB24286@e104818-lin.cambridge.arm.com> <20151215164145.GA8012@leverpostej> <20151215171518.GC8012@leverpostej> From: Vincent Guittot Date: Tue, 15 Dec 2015 18:47:20 +0100 Message-ID: Subject: Re: [RFC PATCH 2/8] Documentation: arm: define DT cpu capacity bindings To: Mark Rutland Cc: Catalin Marinas , Juri Lelli , Peter Zijlstra , Linus Walleij , Will Deacon , Morten Rasmussen , Lorenzo Pieralisi , "linux-pm@vger.kernel.org" , Chen-Yu Tsai , "devicetree@vger.kernel.org" , Pawel Moll , Ian Campbell , Kumar Gala , Mark Brown , Gregory CLEMENT , Russell King - ARM Linux , Dietmar Eggemann , LAK , Thomas Petazzoni , Paul Walmsley , linux-kernel , Sudeep Holla , Olof Johansson , Maxime Ripard Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3698 Lines: 78 On 15 December 2015 at 18:15, Mark Rutland wrote: > On Tue, Dec 15, 2015 at 05:59:34PM +0100, Vincent Guittot wrote: >> On 15 December 2015 at 17:41, Mark Rutland wrote: >> > On Tue, Dec 15, 2015 at 04:23:18PM +0000, Catalin Marinas wrote: >> >> On Tue, Dec 15, 2015 at 03:57:37PM +0000, Mark Rutland wrote: >> >> > On Tue, Dec 15, 2015 at 03:46:51PM +0000, Juri Lelli wrote: >> >> > > On 15/12/15 15:32, Mark Rutland wrote: >> >> > > > On Tue, Dec 15, 2015 at 03:08:13PM +0000, Mark Brown wrote: >> >> > > > > My expectation is that we just need good enough, not perfect, and that >> >> > > > > seems to match what Juri is saying about the expectation that most of >> >> > > > > the fine tuning is done via other knobs. >> >> > > > >> >> > > > My expectation is that if a ballpark figure is good enough, it should be >> >> > > > possible to implement something trivial like bogomips / loop_per_jiffy >> >> > > > calculation. >> >> > > >> >> > > I didn't really followed that, so I might be wrong here, but isn't >> >> > > already happened a discussion about how we want/like to stop exposing >> >> > > bogomips info or rely on it for anything but in kernel delay loops? >> >> > >> >> > I meant that we could have a benchmark of that level of complexity, >> >> > rather than those specific values. >> >> >> >> Or we could simply let user space use whatever benchmarks or hard-coded >> >> values it wants and set the capacity via sysfs (during boot). By >> >> default, the kernel would assume all CPUs equal. >> > >> > I assume that a userspace override would be available regardless of >> > whatever mechanism the kernel uses to determine relative >> > performance/effinciency. >> >> Don't you think that if we let a complete latitude to the userspace >> to set whatever it wants, it will be used to abuse the kernel (and the >> scheduler in particular ) and that this will finish in a real mess to >> understand what is wrong when a task is not placed where it should be. > > I'm not sure I follow what you mean by "abuse" here. Userspace currently > can force the scheduler to make sub-optimal decisions in a number of > ways, e.g. > > * Hot-unplugging the preferred CPUs > * Changing a task's affinity mask > * Setting the nice value of a task > * Using rlimits and/or cgroups > * Using a cpufreq governor > * Fork-bombing All these are parameters have a meaning (except the last one). By abusing i mean setting the capacity of the most powerful cpu to 1 for no good reason except to abuse the scheduler so the latter will not put that much tasks on it just because the current running use case is more efficient if the big core is not used. > > Practically all of these are prvileged operations. I would envisage the > userspace interface for "capacity" management to be similar. > >> We can probably provide a debug mode to help soc manufacturer to >> define their capacity value but IMHO we should not let complete >> latitude in normal operation > > In normal operation userspace wouldn't mess with this, as with most of > the cases above. Userspace can already shooti tself in the foot. > >> In normal operation we need to give some methods to tweak the value to >> reflect a memory bounded or integer calculation work or other kind of >> work that currently runs on the cpu but not more > > You can already do that with the mechanisms above, to some extent. I'm > not sure I follow. > > Mark. -- 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/