Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp553817pxu; Wed, 7 Oct 2020 09:44:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwr+F5dE/BznV0PKvl72CN0zMB51X0VoGFf8bfN5IqbGOEzVZaRWwT8feoanwyJNRgu7Ffa X-Received: by 2002:a17:907:366:: with SMTP id rs6mr4200224ejb.352.1602089097778; Wed, 07 Oct 2020 09:44:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602089097; cv=none; d=google.com; s=arc-20160816; b=HvJUoOdlqUet40j3lYUvOIazJvf0dROZyu7tyWFx3Z7X0YaZYmSJaC3WvaT7slaSwc +BCbV12sPetn4NfvNqTeNDgeU/yOD7/xTrQPqBSXmDbTHu/iatgCtTysSzmGNwxLlApg TuMm09rcd908FJaNjZHRFKIeFpR594szdwbc0WSwo22JY1FiVoWPMQNuQQI4NLL9DTXp 4xDi4hoZz1f3sjLszLcSc68DRupcLc+9B2RfCVpCagvwm+3iZP9v7KeI0yuvWy8oXY9D 12TX/ny838/AXQB/1uBrOYNwagpVdCOaSUQEhk9HeolxOF4rimLVm4rVm2TRSbtZHn7P H9KA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:date:cc:to:from:subject :message-id; bh=hJ9Y3zKtdQZfXVU47eAQGobN1wiUs606b8j2KSVBstQ=; b=qYqvNaLmfNLsVmIIUVF6f/4jyPMIqq7VffDDlnMNIKGaw316C197hasQRZFT9pREXE lUT+5gxPWBGnvGNwxefm5xYro/xWx5vGm1qGMybH8pO67vpwpZRjmBFiI2bBaLHmu9ms N0IqrHhPVkRFGIrIIzwOp7k+ATFMoG2uRsxCTqtQNIch61IFb0d62FS/VEr2uEDdn3nt H5/rvCOIsUYRY9pLjYkEgPADsfBMOkOUB75j6IVQ6dj40ef5+YJstfl3cAvXLDqzSNZl VMAHSX+lbn7oE2HUmxrsUTmi2kM7lfzM6zKK48GSCFyOsLJR1ni6CAhmg9A7ShWdpE3y R0aA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v27si1829759ejq.250.2020.10.07.09.44.33; Wed, 07 Oct 2020 09:44:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727692AbgJGQnK (ORCPT + 99 others); Wed, 7 Oct 2020 12:43:10 -0400 Received: from mslow2.mail.gandi.net ([217.70.178.242]:57892 "EHLO mslow2.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726105AbgJGQnK (ORCPT ); Wed, 7 Oct 2020 12:43:10 -0400 Received: from relay1-d.mail.gandi.net (unknown [217.70.183.193]) by mslow2.mail.gandi.net (Postfix) with ESMTP id E1EF73AF61E; Wed, 7 Oct 2020 16:35:28 +0000 (UTC) X-Originating-IP: 82.255.60.242 Received: from [192.168.0.28] (lns-bzn-39-82-255-60-242.adsl.proxad.net [82.255.60.242]) (Authenticated sender: hadess@hadess.net) by relay1-d.mail.gandi.net (Postfix) with ESMTPSA id 7D1DB240011; Wed, 7 Oct 2020 16:34:56 +0000 (UTC) Message-ID: Subject: Re: [RFC] Documentation: Add documentation for new performance_profile sysfs class From: Bastien Nocera To: "Limonciello, Mario" , Hans de Goede , Darren Hart , Andy Shevchenko , Mark Gross Cc: Mark Pearson , Elia Devito , Benjamin Berg , "linux-pm@vger.kernel.org" , "linux-acpi@vger.kernel.org" , "platform-driver-x86@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Mark Pearson Date: Wed, 07 Oct 2020 18:34:55 +0200 In-Reply-To: References: <20201003131938.9426-1-hdegoede@redhat.com> <20201003131938.9426-2-hdegoede@redhat.com> <85a36eb58cb9774f1907582dfc75295ed847200c.camel@hadess.net> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.38.0 (3.38.0-1.fc33) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 2020-10-07 at 15:58 +0000, Limonciello, Mario wrote: >   > > On Mon, 2020-10-05 at 12:58 +0000, Limonciello, Mario wrote: > > > > On modern systems CPU/GPU/... performance is often dynamically > > > > configurable > > > > in the form of e.g. variable clock-speeds and TPD. The > > > > performance > > > > is often > > > > automatically adjusted to the load by some automatic-mechanism > > > > (which may > > > > very well live outside the kernel). > > > > > > > > These auto performance-adjustment mechanisms often can be > > > > configured with > > > > one of several performance-profiles, with either a bias towards > > > > low-power > > > > consumption (and cool and quiet) or towards performance (and > > > > higher > > > > power > > > > consumption and thermals). > > > > > > > > Introduce a new performance_profile class/sysfs API which > > > > offers a > > > > generic > > > > API for selecting the performance-profile of these automatic- > > > > mechanisms. > > > > > > > > > > If introducing an API for this - let me ask the question, why > > > even let each > > > driver offer a class interface and userspace need to change > > > "each" driver's > > > performance setting? > > > > > > I would think that you could just offer something kernel-wide > > > like > > > /sys/power/performance-profile > > > > > > Userspace can read and write to a single file.  All drivers can > > > get notified > > > on this sysfs file changing. > > > > > > The systems that react in firmware (such as the two that prompted > > > this discussion) can change at that time.  It leaves the > > > possibility for a > > > more open kernel implementation that can do the same thing though > > > too by > > > directly modifying device registers instead of ACPI devices. > > > > The problem, as I've mentioned in previous discussions we had about > > this, is that, as you've seen in replies to this mail, this would > > suddenly be making the kernel apply policy. > > > > There's going to be pushback as soon as policy is enacted in the > > kernel, and you take away the different knobs for individual > > components > > (or you can control them centrally as well as individually). As > > much as > > I hate the quantity of knobs[1], I don't think that trying to > > reduce > > the number of knobs in the kernel is a good use of our time, and > > easier > > to enact, coordinated with design targets, in user-space. > > > > Unless you can think of a way to implement this kernel wide setting > > without adding one more exponent on the number of possibilities for > > the > > testing matrix, I'll +1 Hans' original API. > > > Actually I offered two proposals in my reply.  So are you NAKing > both? No, this is only about the first portion of the email, which I quoted. And I'm not NAK'ing it, but I don't see how it can work without being antithetical to what kernel "users" expect, or what the folks consuming those interfaces (presumably us both) would expect to be able to test and maintain. > The other one suggested to use the same firmware attributes class > being > introduced by the new Dell driver ( > https://patchwork.kernel.org/patch/11818343/) > since this is actually a knob to a specific firmware setting. This seemed to me like an implementation detail (eg. the same metadata is being exported, but in a different way), and I don't feel strongly about it either way.