public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Venkatesh Pallipadi <venkatesh.pallipadi-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: cpufreq <cpufreq-1walMZg8u8rXmaaqVzeoHQ@public.gmane.org>,
	acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: Dave Jones <davej-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Dominik Brodowski
	<linux-X3ehHDuj6sIIGcDfoQAp7OTW4wlIGRCZ@public.gmane.org>,
	Len Brown <len.brown-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Rajesh Shah <rajesh.shah-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: [RFC][PATCH 0/4] Software coordination of frequency across CPUs sharing common P-state
Date: Wed, 31 Aug 2005 14:09:33 -0700	[thread overview]
Message-ID: <20050831140933.A12497@unix-os.sc.intel.com> (raw)


ACPI 3.0 (http://www.acpi.info) adds new methods with which BIOS can communicate
P-state dependency domains (List of CPUs that share a common P-state) to
the OS. This can be used in conjunction with the existing "cpu group awareness"
in cpufreq infrastructure, to manage the group of CPUs sharing the common 
P-state, in a better way.

The patchset that follows adds this "software-coordination" feature in 
acpi-perflib, and also changes acpi-cpufreq and speedstep-centrino drivers to
use this feature. 

With this feature, current and future platforms (with more than one
logical processor) with Enhanced Speedstep Technology, can use 
software-coordination in place of BIOS(or Hardware)-coordination of P-states. 
The advantages:
1) With software coordination, we can use MSRs to change the frequency, 
instead of using IO ports (as in BIOS coordination). This has a huge advantage
in terms of P-state transition latency. MSR based P-states transition latency 
is around 10uS where as IO port based (which goes through SMM for BIOS 
coordination) latency is around 100uS.
2) Kernel will know about the exact frequency at which each CPU is running. 
With BIOS coordination, actual frequency of a particular CPU may be different
from what kernel thinks it is. As, BIOS changes the frequency of a particular 
CPU depending on last request from the kernel and also the frequency request 
from all the other CPUs in the same domain.

Caveat: BIOSes have to change to to support these new ACPI 3.0 based interfaces.
Not many BIOSes support it today. But, are likely to do it in future, as with 
dual-cores, more number of logical processors share the common P-states.

The patchset also allows "hardware coordination" of P-states among the
CPUs belonging to same P-state dependency domain. Kernel will use either
software or hardware coordination, depending on what BIOS supports on the
particular platform. With hardware coordination among the CPUs of a dependency
domain, we will still have the advantage (2) above, but will not have the 
advantage (1).

Below is more info about each patch in the patchset.

Comments most welcome.
Thanks,
Venki

[PATCH 1/4] Software coordination of freq across CPUs sharing common P-state

Changes to acpi/processor_perflib.c to invoke new (ACPI 3.0) _PSD methods. 
This method has to be called early on all CPUs and P-state dependency domains 
determined before the actual performance_register of P-states.

Also, a new field (shared_type) is added to cpufreq_policy. This is required to support two kinds of CPU groups. One, where one logical CPU can change the 
frequency of all the CPUs by writing into an MSR or IO port. Other, where all 
CPUs in the dependency domain need to write to an MSR or IO port.


[PATCH 2/4] Software coordination of freq across CPUs sharing common P-state

Changes to speedstep-centrino required for supporting cpu groups sharing
common P-state.

acpi_processor_preregister_performance is called initially to determine the
CPU group membership.
centrino_target is chaneg to handle acpu group shared_type of SHARED_TYPE_ANY
and SHARED_TYPE_ALL.


[PATCH 3/4] Software coordination of freq across CPUs sharing common P-state

Changes to acpi-cpufreq required for supporting cpu groups sharing
common P-state

acpi_processor_preregister_performance is called initially to determine the
CPU group membership.
centrino_target is chaneg to handle acpu group shared_type of SHARED_TYPE_ANY
and SHARED_TYPE_ALL.


[PATCH 4/4] Software coordination of freq across CPUs sharing common P-state

Final knob to turn on the P-state cpu groups in acpi-cpufreq and
speedstep-centrino. Add the software coordination bit for _PDC calls.




-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf

             reply	other threads:[~2005-08-31 21:09 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-31 21:09 Venkatesh Pallipadi [this message]
     [not found] ` <20050831140933.A12497-39QZ/XbsZ5/mO6KZMuUCQVaTQe2KTcn/@public.gmane.org>
2005-09-01  5:29   ` [RFC][PATCH 0/4] Software coordination of frequency across CPUs sharing common P-state Dave Jones
     [not found]     ` <20050901052903.GA17927-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2005-09-01  9:08       ` Dominik Brodowski

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=20050831140933.A12497@unix-os.sc.intel.com \
    --to=venkatesh.pallipadi-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=cpufreq-1walMZg8u8rXmaaqVzeoHQ@public.gmane.org \
    --cc=davej-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=len.brown-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=linux-X3ehHDuj6sIIGcDfoQAp7OTW4wlIGRCZ@public.gmane.org \
    --cc=rajesh.shah-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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