Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp3350140imm; Tue, 17 Jul 2018 03:23:29 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdY7K8pjbGLabY4d2Xh63j9Tf+t90bWDfM8PUDHMS0ewQanhpm+qes7XjnZUo8kImflI5x6 X-Received: by 2002:a17:902:8f94:: with SMTP id z20-v6mr1019246plo.337.1531823009442; Tue, 17 Jul 2018 03:23:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531823009; cv=none; d=google.com; s=arc-20160816; b=Xcyarhh9bcZ2NuiKpzjpmidpd8qZQljAVjwmUtWFOvElBMuCILqwBQswe09fdHzcus SBQcBtZu1d07AuD02lvOIvlFj8sym7kFB1If+NwcvV1Q+pV2L0POHk3fKNvnaqc3mDIL TnLoS1Mr9WpBrhVUP6EKuuepVoeKa43lEiruvOmK6BAf4zHCy7NOn5TS73NbgYNBcT7N Fn6LqLesRqPk9EExhyhhF79unsdQ068tohJdzyxy8TpN8kFwcpAG4TR+6SPQuzgm3AZh s8i66CCCLgYBuRYI/b4DlMpmhUY8d8ilvvScbjRBIxZDQ5mXZ5a/NwrLeK5cFEOI2itf Aexw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=pU71Pb3t54nK7sAj57M1rrRPGXYByH9lSwmsRXf3KG8=; b=NS91fwDefcGaV7O5D5B9c2CCAFyi3wOVYoqym+Qqf8KUXROzJol0Zcs4sJ3DxxrPvT rk+OQUMdn7f5kLIeaXNQkFhNF7Fu2MgFAnFrwg07OVIL0/Kf4MKeIZ2X/HEwpCRC35ze nM45yBmuugheSUoWVzsFfExPwtsHt7pmL680UpwkAknxCVtpNFnj+xQ8GJ5XMUCE/3h9 jIDw1yGmSMAZBzN13XNFVrwD0IHsnpoc67sOsc70qvfaZMyFSblc39U3tXqJdcxdg8bR KrcOIyjXF2mWg6ARJh3NbOqlzWFPl4BVCGoqJfsOIB7w4MxSFWCSBbmDV+VR0SBFEhkz Adbg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t18-v6si465096plo.163.2018.07.17.03.23.14; Tue, 17 Jul 2018 03:23:29 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730252AbeGQKxw (ORCPT + 99 others); Tue, 17 Jul 2018 06:53:52 -0400 Received: from smtp.nue.novell.com ([195.135.221.5]:51418 "EHLO smtp.nue.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729714AbeGQKxw (ORCPT ); Tue, 17 Jul 2018 06:53:52 -0400 Received: from emea4-mta.ukb.novell.com ([10.120.13.87]) by smtp.nue.novell.com with ESMTP (TLS encrypted); Tue, 17 Jul 2018 12:21:56 +0200 Received: from suselix (nwb-a10-snat.microfocus.com [10.120.13.201]) by emea4-mta.ukb.novell.com with ESMTP (TLS encrypted); Tue, 17 Jul 2018 11:21:38 +0100 Date: Tue, 17 Jul 2018 12:21:36 +0200 From: Andreas Herrmann To: "Rafael J. Wysocki" Cc: "Rafael J. Wysocki" , Peter Zijlstra , Frederic Weisbecker , Viresh Kumar , Linux PM , Linux Kernel Mailing List Subject: Re: Commit 554c8aa8ecad causing severe performance degression with pcc-cpufreq Message-ID: <20180717102136.snayvzmv2h3dcwiq@suselix> References: <20180717065048.74mmgk4t5utjaa6a@suselix> <20180717092721.onkaf3qsu7te6syi@suselix> <20180717093620.ym6phfmr3rfvsxyo@suselix> <3724084.DyflrVPzDS@aspire.rjw.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <3724084.DyflrVPzDS@aspire.rjw.lan> User-Agent: NeoMutt/20170421 (1.8.2) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 17, 2018 at 12:09:21PM +0200, Rafael J. Wysocki wrote: > On Tuesday, July 17, 2018 11:36:20 AM CEST Andreas Herrmann wrote: > > On Tue, Jul 17, 2018 at 11:27:21AM +0200, Andreas Herrmann wrote: > > > On Tue, Jul 17, 2018 at 11:23:25AM +0200, Rafael J. Wysocki wrote: > > > > On Tue, Jul 17, 2018 at 11:11 AM, Andreas Herrmann wrote: > > > > > On Tue, Jul 17, 2018 at 11:06:29AM +0200, Rafael J. Wysocki wrote: > > > > >> On Tue, Jul 17, 2018 at 10:50 AM, Andreas Herrmann wrote: > > > > >> > > > > >> [cut] > > > > >> > > > > >> > > > > > >> > On balance before this commit users could use pcc-cpufreq but had > > > > >> > already suboptimal performance (compared to say intel_pstate driver > > > > >> > which can be used changing BIOS options). > > > > >> > > > > >> BTW, I wonder why you need to change the BIOS options for intel_pstate to load. > > > > > > > > > > I think this is because of (in intel_pstate_init()): > > > > > > > > > > /* > > > > > * The Intel pstate driver will be ignored if the platform > > > > > * firmware has its own power management modes. > > > > > */ > > > > > if (intel_pstate_platform_pwr_mgmt_exists()) > > > > > return -ENODEV; > > > > > > > > > > > > > OK, because of the "Proliant" entry, right? > > > > > > > > So it looks like we have an issue there. We find the entry and we > > > > look for _PSS. It is not there, so we assume that the firmware is > > > > expected to control performance, which is not the case. > > > > FYI, there is another BIOS setting on those systems. It's called > > "Collaborative Power Control" (AFAIK enabled by default). > > > > Only if this is disabled, firmware is (alone) in control of > > performance. (And of course in this case neither pcc-cpufreq nor > > intel_pstate will be loaded). > > OK, the patch is below. > > First, I hope that if "Collaborative Power Control" is disabled, it will > simply hide the PCCH object and so intel_pstate will still not load then. PCCH is hidden in that case. > The main question basically is what the OS is expected to do if > "Dynamic Power Savings Mode" is set. If we are *expected* to use > the PCC interface then, intel_pstate may not work in that case, but > I suspect that the PCC interface allows extra energy to be saved > over what is possible without it. I'll test it and see what happens. Andreas > --- > drivers/cpufreq/intel_pstate.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > Index: linux-pm/drivers/cpufreq/intel_pstate.c > =================================================================== > --- linux-pm.orig/drivers/cpufreq/intel_pstate.c > +++ linux-pm/drivers/cpufreq/intel_pstate.c > @@ -2391,6 +2391,18 @@ static bool __init intel_pstate_no_acpi_ > return true; > } > > +static bool __init intel_pstate_no_acpi_pcch(void) > +{ > + acpi_status status; > + acpi_handle handle; > + > + status = acpi_get_handle(NULL, "\\_SB", &handle); > + if (ACPI_FAILURE(status)) > + return true; > + > + return !acpi_has_method(handle, "PCCH"); > +} > + > static bool __init intel_pstate_has_acpi_ppc(void) > { > int i; > @@ -2450,7 +2462,10 @@ static bool __init intel_pstate_platform > > switch (plat_info[idx].data) { > case PSS: > - return intel_pstate_no_acpi_pss(); > + if (!intel_pstate_no_acpi_pss()) > + return false; > + > + return intel_pstate_no_acpi_pcch(); > case PPC: > return intel_pstate_has_acpi_ppc() && !force_load; > } > >