From: Dominik Brodowski <linux-JhLEnvuH02M@public.gmane.org>
To: David Moore <dcm-HInyCGIudOg@public.gmane.org>
Cc: Jeremy Fitzhardinge <jeremy-TSDbQ3PG+2Y@public.gmane.org>,
Ducrot Bruno <ducrot-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>,
Andrew Grover
<andrew.grover-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
"Adachi,
Kenichi"
<adachi-fvZ7ij+YLgEZc9YY0SgeQc8NsWr+9BEh@public.gmane.org>,
acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
cpufreq list <cpufreq-1walMZg8u8rXmaaqVzeoHQ@public.gmane.org>
Subject: Re: [ACPI] _PDC method in DSDT
Date: Mon, 23 Jun 2003 23:37:26 +0200 [thread overview]
Message-ID: <20030623213726.GA1317@brodo.de> (raw)
In-Reply-To: <1056398545.10322.111.camel-cfibRQahR+cF6I9xFAAkN5QCsf4PZ8us@public.gmane.org>
On Mon, Jun 23, 2003 at 01:02:25PM -0700, David Moore wrote:
> Thanks for all the responses on this issue. Forgive my ignorance in
> many cases, I've been involved in this code much less time than most
> people here.
"Fresh", new ideas are always most welcome :-)
Firstly, please let me explain the goal of the cpufreq project: it is a
cross-architecture, _generic framework_ which provides
a) a standard userspace interface to select certain processor speeds
(sysfs based in 2.5)
b) another interface to "governors" which decide what speed to set
(e.g. based on userspace input), and
c) common core functions (so-called notifiers) which update essential
timing code in the kernel, such as the Time Stamp Counter (TSC)
timer.
So, to make life simple for the user (a), to offer him some cool features
(b), and to assure the kernel won't break switching the core frequency
(c) all "processor drivers" which change the processor core frequency should
register themselves as cpufreq drivers.[*]
Because of this, the ACPI P-States driver became a "cpufreq driver" in the
_development_ series -- see arch/i386/kernel/cpu/cpufreq/acpi.c in latest
2.5. kernels.
Also, you should try to think of ACPI as a "library" which provides useful
helpers for other kernel services -- CPU enumeration, information on how
IRQs can be routed, information on how a specific device can be put to
sleep. It shouldn't be the ACPI code which is in "control of things", as
there are too many broken BIOSes around, and too many "legacy" systems
can't even spell ACPI at all. Instead, it should but the specific
__device drivers__ which are in "control of things". Nonetheless, these
_may_ use ACPI to obtain information/control of the hardware.
> What about this approach as a possible solution to everything that's
> been discussed:
>
> Patch ACPI as follows: In the case where _PCT returns FFH as the
> register type in processor.c, we would simply call a processor-specific
> function in /arch/i386/ instead of using outb() for the state changes.
IMO the ACPI P-States driver should only include the ACPI 2.0 P-States driver,
and not try to support all other sorts of legacy support and become one
"mega-driver". Instead, the other information stored in _PCT you talk about
should be available to other processor-specific cpufreq drivers which see
a need to obtain this information -- ACPI as a library, available to those
who want it.
> For those who want to use cpufreq and ACPI simultaneously, they could
> use the cpufreq-ACPI driver, which would now be capable of using the
> appropriate processor-specific functions for state changes with little
> ACPI overhead.
Using some sort of method to switch the core frequency of the processor
without informing the cpufreq core is dangerous. The cpufreq core makes
sure the timing code in other areas of the kernel is updated.
> The only big drawback of this approach is the duplication of code
> between the existing cpufreq drivers and these new processor-specific
> state changing drivers.
Indeed, and it is unnecessary. What's worth having, though, is a way to pass
the information ACPI possesses to the cpufreq drivers whenever these think
it's necessary.
Dominik
[*] I know the newly-added drivers/acpi/processor.c in 2.4.22-pre contains
the ACPI P-States 2.0 driver which can't register itself to any cpufreq core
as cpufreq is only part of 2.5. kernels. But this is a different issue.
next prev parent reply other threads:[~2003-06-23 21:37 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-23 9:19 [ACPI] _PDC method in DSDT Grover, Andrew
[not found] ` <F760B14C9561B941B89469F59BA3A84725A303-sBd4vmA9Se4Lll3ZsUKC9FDQ4js95KgL@public.gmane.org>
2003-06-23 13:38 ` Dominik Brodowski
[not found] ` <20030623133834.GA2330-JhLEnvuH02M@public.gmane.org>
2003-06-23 16:11 ` Ducrot Bruno
[not found] ` <20030623161136.GG19556-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-06-23 17:12 ` Jeremy Fitzhardinge
[not found] ` <1056388336.15250.62.camel-Ir80B/JpJuPj/dU0+sc/eg@public.gmane.org>
2003-06-23 20:02 ` David Moore
[not found] ` <1056398545.10322.111.camel-cfibRQahR+cF6I9xFAAkN5QCsf4PZ8us@public.gmane.org>
2003-06-23 21:37 ` Dominik Brodowski [this message]
[not found] ` <20030623213726.GA1317-JhLEnvuH02M@public.gmane.org>
2003-06-24 1:14 ` David Moore
[not found] ` <1056417280.10323.148.camel-cfibRQahR+cF6I9xFAAkN5QCsf4PZ8us@public.gmane.org>
2003-06-24 1:37 ` Jeremy Fitzhardinge
[not found] ` <1056418635.5977.20.camel-8CPiehpM6Y7yyrDBriEPRMdZPGv2U8no@public.gmane.org>
2003-06-24 2:02 ` David Moore
[not found] ` <1056420149.10322.160.camel-cfibRQahR+cF6I9xFAAkN5QCsf4PZ8us@public.gmane.org>
2003-06-24 2:16 ` Jeremy Fitzhardinge
2003-06-24 9:18 ` Ducrot Bruno
[not found] ` <20030624091836.GI19556-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-06-24 21:47 ` David Moore
[not found] ` <1056491271.3979.15.camel-cfibRQahR+cF6I9xFAAkN5QCsf4PZ8us@public.gmane.org>
2003-06-26 10:40 ` Ducrot Bruno
[not found] ` <20030626104041.GR19556-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-06-26 11:13 ` Ducrot Bruno
2003-09-04 23:19 ` [RFC] cpufreq: use new acpi processor perflib in speedstep-centrino [Was: Re: [ACPI] _PDC method in DSDT] Dominik Brodowski
[not found] ` <20030904231932.GA8518-JhLEnvuH02M@public.gmane.org>
2003-09-05 16:53 ` Jeremy Fitzhardinge
-- strict thread matches above, loose matches on Subject: below --
2003-06-23 7:11 [ACPI] _PDC method in DSDT Grover, Andrew
[not found] ` <F760B14C9561B941B89469F59BA3A84725A301-sBd4vmA9Se4Lll3ZsUKC9FDQ4js95KgL@public.gmane.org>
2003-06-23 7:53 ` David Moore
[not found] ` <1056354807.10323.71.camel-cfibRQahR+cF6I9xFAAkN5QCsf4PZ8us@public.gmane.org>
2003-06-23 12:27 ` Ducrot Bruno
2003-06-23 13:42 ` Dominik Brodowski
2003-06-23 7:59 ` Arjan van de Ven
2003-06-23 13:44 ` 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=20030623213726.GA1317@brodo.de \
--to=linux-jhlenvuh02m@public.gmane.org \
--cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=adachi-fvZ7ij+YLgEZc9YY0SgeQc8NsWr+9BEh@public.gmane.org \
--cc=andrew.grover-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=cpufreq-1walMZg8u8rXmaaqVzeoHQ@public.gmane.org \
--cc=dcm-HInyCGIudOg@public.gmane.org \
--cc=ducrot-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org \
--cc=jeremy-TSDbQ3PG+2Y@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