From: David C Niemi <dniemi@verisign.com>
To: Dirk Brandewie <dirk.brandewie@gmail.com>
Cc: Arjan van de Ven <arjan@linux.intel.com>,
cpufreq@vger.kernel.org, rjw@sisk.pl, deneen.t.dock@intel.com
Subject: Re: [PATCH RFC 0/1] cpufreq/x86: Add P-state driver for sandy bridge.
Date: Thu, 06 Dec 2012 17:23:14 -0500 [thread overview]
Message-ID: <50C11AD2.4000802@verisign.com> (raw)
In-Reply-To: <50C10F93.3060706@gmail.com>
On 12/06/12 16:35, Dirk Brandewie wrote:
...
> Yep there are a bunch of ways to skin the cat when it comes to trading peak
> performance for saving power. The driver code is setup allow for having
> multiple sets of tuning parameters that could be selected by the
> user/system admin/integrator.
>
> The current driver is tuned to have the same or better peak performance
> than the ondemand governor while having better power efficiency.
An untuned ondemand governor performs very poorly, as it is constantly trying to switch frequency down when it is busy. Did you try it witn sampling_down_factor set to, say, 100? This would tend to make it consume more power but perform substantially better, and would be a more reasonable comparison than with sampling_down_factor set to 1 (default).
> The performance and power efficiency gains depends on the type of workload.
>
> The thorny question in my mind if people agree that having a per architecture p state driver is a valid approach is how should the per architecture drivers
> be integrated into a system that allows distributions to build generic kernels
> with reasonable default behaviour.
There is nothing wrong with having a bunch of different architecture-specific drivers, there is no way around that. But they need some kind of abstraction layer over the top or distribution creators will bypass it, even if it is clearly superior. If the existing layers are unusable, then we need a new abstraction layer; the most important feature is that a single configuration file needs to be able to do some basic reasonable settings across a wide variety of hardware types, or at a bare minimum come up in a sensible default mode. Again, that could be a new config file or an existing one, but some existing ones (e.g. /etc/sysconfig/cpuspeed) are totally focused on the wrong things and I can fully understand wanting to ditch them and do something new.
The cpupower utility from kernel-tools is a much better framework and could probably be extended to control the pstate driver/governor so maybe that is a good way to look; it also tweaks scheduler settings. It's already used on Fedora 16 and later but not RHEL 6.x. You might want to talk to whoever is maintaining it.
> Providing an interface to retrieve the current requested (operating)frequency
> is trivial. Giving the user a warm fuzzy that things are changing what this
> type of utility is good for IMHO not an unreasonable desire.
Agreed, but an average frequency over the last second (or 100 msec) is probably more interesting than the requested frequency, if they are both easy to find out.
> The real question is does it need to be reported via the cpufreq subsystem and
> if not where should this driver and others like it report the frequency.
I'm not sure there really is anywhere you CAN report it other than responding to inquiries about it via /sys.
> So if it is not practical to get an average, reporting the frequency stamped on the part
>> is better than nothing. It is boring, but less boring than reporting "0".
>
> What would you use this number for in userspace? I guess I might not
> understand exactly what you are asking for here.
>
> --Dirk
Mostly applets that show current CPU speed, possibly other performance monitoring tools like i7z.
DCN
next prev parent reply other threads:[~2012-12-06 22:23 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-05 19:01 [PATCH RFC 0/1] cpufreq/x86: Add P-state driver for sandy bridge dirk.brandewie
2012-12-05 19:01 ` [PATCH RFC 1/1] " dirk.brandewie
2012-12-05 20:28 ` [PATCH RFC 0/1] " David C Niemi
2012-12-05 21:01 ` Arjan van de Ven
2012-12-05 21:40 ` David C Niemi
2012-12-05 21:54 ` Arjan van de Ven
2012-12-06 15:01 ` David C Niemi
2012-12-06 16:27 ` Arjan van de Ven
2012-12-06 17:30 ` David C Niemi
2012-12-06 17:41 ` Arjan van de Ven
2012-12-06 18:25 ` Dirk Brandewie
2012-12-06 18:41 ` David C Niemi
2012-12-06 21:35 ` Dirk Brandewie
2012-12-06 22:23 ` David C Niemi [this message]
2012-12-06 20:45 ` Rafael J. Wysocki
2012-12-06 21:15 ` Arjan van de Ven
2012-12-06 21:26 ` Rafael J. Wysocki
2012-12-06 21:34 ` Rafael J. Wysocki
2012-12-06 22:08 ` Arjan van de Ven
2012-12-06 22:53 ` Rafael J. Wysocki
2012-12-06 16:35 ` Dirk Brandewie
2012-12-06 16:49 ` Arjan van de Ven
2012-12-06 18:16 ` David C Niemi
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=50C11AD2.4000802@verisign.com \
--to=dniemi@verisign.com \
--cc=arjan@linux.intel.com \
--cc=cpufreq@vger.kernel.org \
--cc=deneen.t.dock@intel.com \
--cc=dirk.brandewie@gmail.com \
--cc=rjw@sisk.pl \
/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).