From: Dominik Brodowski <linux-X3ehHDuj6sIIGcDfoQAp7BvVK+yQ3ZXh@public.gmane.org>
To: len.brown-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: ACPI processor module enhancements
Date: Wed, 15 Sep 2004 10:47:14 +0200 [thread overview]
Message-ID: <20040915084714.GA2282@dominikbrodowski.de> (raw)
Hi,
This is meant as sort of a "TODO list" for the ACPI processor module. There
are several areas which are in need of improvement -- and coordination. To
keep in Linux tradition, I've tried to split them up so that small
incremental patches are possible:
1.) utilize pstate_cnt to notify the BIOS that a P-State driver is present
This has already been brought up on this list, last in this thread:
http://marc.theaimsgroup.com/?l=acpi4linux&m=109428989121089&w=2
2.) support for _CST [more, dynamically configurable CPU power states] on UP
Patch is at http://bugme.osdl.org/show_bug.cgi?id=1958 -- Bruno's
"non-dynamic" patch instead of mine is the way to go...
3.) improved CPU power state selection algorithm
Some ideas are in my patch http://bugme.osdl.org/show_bug.cgi?id=1958 , it
needs adaption to TODO#2 and further evaluation, though.
4.) _OSC / _PDC framework
The _PDC / _OSC methods added in ACPI v. 3.0 are a bit tricky to handle
because of the modularization in Linux. Basically we need a
unsigned int acpi_processor_osc_update()
which only adds something to a saved buffer. If the driver requests some
"control" by calling acpi_processor_osc_update(), the latter should lock the
driver by "try_module_get()".
5.) _{P,T,C}SD groundwork
some
acpi_status acpi_processor_get_domain(..., cpumask_t *cpus, u8 *type);
is needed which a) determines the domain of the CPU passed as argument,
b) walks through all detected processor objects and looks for the other CPUs
in this domain [this asserts that all CPUs are initialized as required by
ACPI spec v.3.0 p.273], c) converts the ACPI CPU numbers to Linux kernel CPU
numbers, and d) converts this to a cpumask_t
6.) Utilizing _PSD in the ACPI perflib
The cpufreq core is (almost) ready for handling domains, so it'll be only a
question of cpufreq driver support for domain ahndling. A helper like
acpi_for_domain_do_fn(cpumask_t domain; (int) (*fn) (unsigned int cpu, cpumask_t allowed_maskm void *), void *data, int type) {
int ret = -EINVAL;
/* we encourage type ANY as it is faster */
if (likely(type == ANY)) {
ret = fn(find_first_bit(domain), domain, data)
} else {
for_each_cpu_mask(cpu, domain) {
ret = fn(cpu, cpu_mask_of_cpu(cpu), data)
if (ret)
return (ret);
}
}
return (ret);
}
or something like that may be of assistance here.
7.) Support for C2-type sleep on multiprocessor systems.
Already previous versions of the ACPI specification can support that in
theory, though SMT awareness requires _CSD handling.
8.) Support for WBINVD-based C3
Only enabled on UP if users explicitely requests it, but always available
on multiprocessor systems.
9.) throttling support using _PTC/_TSS/_TPC on UP
Currently only the P_CNT method is available.
10.) Make throttling multiprocessor-aware utilizing _TSD
11.) [or maybe much much earlier?] split up drivers/acpi/processor.c in
individual files and modules:
- core
- C-States handling
- T-States handling
- ACPI perflib
Dominik
-------------------------------------------------------
This SF.Net email is sponsored by: thawte's Crypto Challenge Vl
Crack the code and win a Sony DCRHC40 MiniDV Digital Handycam
Camcorder. More prizes in the weekly Lunch Hour Challenge.
Sign up NOW http://ad.doubleclick.net/clk;10740251;10262165;m
next reply other threads:[~2004-09-15 8:47 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-15 8:47 Dominik Brodowski [this message]
-- strict thread matches above, loose matches on Subject: below --
2004-10-08 20:12 ACPI processor module enhancements Brown, Len
[not found] ` <F7DC2337C7631D4386A2DF6E8FB22B3001A19151-N2PTB0HCzHKkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2004-10-08 20:26 ` Dominik Brodowski
[not found] ` <20041008202612.GA10952-X3ehHDuj6sIIGcDfoQAp7BvVK+yQ3ZXh@public.gmane.org>
2004-10-08 20:51 ` Len Brown
2004-10-09 10:04 Yu, Luming
2004-10-11 13:04 ` 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=20040915084714.GA2282@dominikbrodowski.de \
--to=linux-x3ehhduj6siigcdfoqap7bvvk+yq3zxh@public.gmane.org \
--cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=len.brown-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