linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: linux-pm@vger.kernel.org
Cc: Andreas Herrmann <aherrmann@suse.com>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Frederic Weisbecker <frederic@kernel.org>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	linux-kernel@vger.kernel.org
Subject: [PATCH] cpufreq: pcc-cpufreq: Disable dynamic scaling on many-CPU systems
Date: Tue, 17 Jul 2018 14:02:29 +0200	[thread overview]
Message-ID: <306375154.NhdH6AhdAd@aspire.rjw.lan> (raw)
In-Reply-To: <20180717065048.74mmgk4t5utjaa6a@suselix>

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

The firmware interface used by the pcc-cpufreq driver is
fundamentally not scalable and using it for dynamic CPU performance
scaling on systems with many CPUs leads to degraded performance.

For this reason, disable dynamic CPU performance scaling on systems
with pcc-cpufreq where the number of CPUs present at the driver init
time is greater than 4.  Also make the driver print corresponding
complaints to the kernel log.

Reported-by: Andreas Herrmann <aherrmann@suse.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/cpufreq/pcc-cpufreq.c |    8 ++++++++
 1 file changed, 8 insertions(+)

Index: linux-pm/drivers/cpufreq/pcc-cpufreq.c
===================================================================
--- linux-pm.orig/drivers/cpufreq/pcc-cpufreq.c
+++ linux-pm/drivers/cpufreq/pcc-cpufreq.c
@@ -589,6 +589,14 @@ static int __init pcc_cpufreq_init(void)
 		return ret;
 	}
 
+	if (num_present_cpus() > 4) {
+		pcc_cpufreq_driver.flags |= CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING;
+		pr_err("%s: Unsuitable system, dynamic performance scaling disabled\n",
+		       __func__);
+		pr_err("%s: Change BIOS settings and complain to the hardware vendor\n",
+		       __func__);
+	}
+
 	ret = cpufreq_register_driver(&pcc_cpufreq_driver);
 
 	return ret;


  parent reply	other threads:[~2018-07-17 12:04 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-17  6:50 Commit 554c8aa8ecad causing severe performance degression with pcc-cpufreq Andreas Herrmann
2018-07-17  7:33 ` Rafael J. Wysocki
2018-07-17  8:03   ` Rafael J. Wysocki
2018-07-17  8:50     ` Andreas Herrmann
2018-07-17  8:58       ` Rafael J. Wysocki
2018-07-17  9:06       ` Rafael J. Wysocki
2018-07-17  9:11         ` Andreas Herrmann
2018-07-17  9:23           ` Rafael J. Wysocki
2018-07-17  9:27             ` Andreas Herrmann
2018-07-17  9:36               ` Andreas Herrmann
2018-07-17 10:09                 ` Rafael J. Wysocki
2018-07-17 10:21                   ` Andreas Herrmann
2018-07-17 10:23                     ` Rafael J. Wysocki
2018-07-17 14:03                     ` Andreas Herrmann
2018-07-17 15:29                       ` Rafael J. Wysocki
2018-07-17 16:13                       ` [PATCH] cpufreq: intel_pstate: Load when ACPI PCCH is present Rafael J. Wysocki
2018-07-17 17:23                         ` Srinivas Pandruvada
2018-07-17 17:28                           ` Rafael J. Wysocki
2018-07-17 18:06                         ` [PATCH] cpufreq: intel_pstate: Register " Rafael J. Wysocki
2018-07-18 10:43                           ` Andreas Herrmann
2018-07-18 10:51                             ` Rafael J. Wysocki
2018-07-17 10:18                 ` Commit 554c8aa8ecad causing severe performance degression with pcc-cpufreq Andreas Herrmann
2018-07-17  8:08   ` Daniel Lezcano
2018-07-17  8:36   ` Andreas Herrmann
2018-07-17  8:52     ` Rafael J. Wysocki
2018-07-17  8:15 ` Peter Zijlstra
2018-07-17  9:05   ` Andreas Herrmann
2018-07-17 12:02 ` Rafael J. Wysocki [this message]
2018-07-17 16:14   ` [PATCH v2] cpufreq: pcc-cpufreq: Disable dynamic scaling on many-CPU systems Rafael J. Wysocki
2018-07-17 20:13     ` Andreas Herrmann
2018-07-18  7:44       ` Rafael J. Wysocki
2018-07-18  8:23       ` Peter Zijlstra
2018-07-18  9:34         ` Andreas Herrmann
2018-07-18 15:25 ` Commit 554c8aa8ecad causing severe performance degression with pcc-cpufreq Andreas Herrmann
2018-07-18 15:31   ` Andreas Herrmann
2018-07-19 11:04     ` Andreas Herrmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=306375154.NhdH6AhdAd@aspire.rjw.lan \
    --to=rjw@rjwysocki.net \
    --cc=aherrmann@suse.com \
    --cc=frederic@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).