From: Ashwin Chaugule <ashwin.chaugule@linaro.org>
To: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
Jaswinder Singh <jaswinder.singh@linaro.org>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
Linaro ACPI Mailman List <linaro-acpi@lists.linaro.org>,
Patch Tracking <patches@linaro.org>,
linux acpi <linux-acpi@vger.kernel.org>,
Viresh Kumar <viresh.kumar@linaro.org>,
Sudeep Holla <sudeep.holla@arm.com>
Subject: Re: [PATCH v6 2/7] ACPI: Make ACPI processor driver more extensible
Date: Wed, 8 Jul 2015 15:16:36 -0400 [thread overview]
Message-ID: <CAJ5Y-ebW3aCSSs4UQFLpLFSfo7d9zPVfigoROjN80uXzG1sZLw@mail.gmail.com> (raw)
In-Reply-To: <CAJZ5v0gKW7bR66trxvuhd_Gb=ZMBbec++u+V+T4mroCZMtO+vg@mail.gmail.com>
Hi Rafael,
On 8 July 2015 at 09:34, Rafael J. Wysocki <rafael@kernel.org> wrote:
> Hi Ashwin,
>
> On Wed, Jul 8, 2015 at 3:27 AM, Ashwin Chaugule
> <ashwin.chaugule@linaro.org> wrote:
>> On 7 July 2015 at 21:07, Rafael J. Wysocki <rjw@rjwysocki.net> wrote:
>>> On Monday, June 15, 2015 04:09:06 PM Ashwin Chaugule wrote:
>>>> The ACPI processor driver is currently tied too closely
>>>> to the ACPI C-states (CST), P-states (PSS) and other related
>>>> constructs for controlling CPU idle and CPU performance.
>>>>
>>>> The newer ACPI specification (v5.1 onwards) introduces
>>>> alternative methods to CST and PSS. These new mechanisms
>>>> are described within each ACPI Processor object and so they
>>>> need to be scanned whenever a new Processor object is detected.
>>>> This patch introduces two new Kconfig symbols to allow for
>>>> finer configurability among the various options for controlling
>>>> CPU idle and performance states. There is no change in functionality
>>>> and these options are defaulted to enabled to maintain previous
>>>> behaviour.
>>>>
>>>> The following patchwork introduces CPPC: A newer method of
>>>> controlling CPU performance. The OS is not expected to support CPPC
>>>> and PSS at runtime. So the kconfig option lets us make these two
>>>> mutually exclusive at compile time.
>>>>
>>>> Signed-off-by: Ashwin Chaugule <ashwin.chaugule@linaro.org>
>>>> Reviewed-by: Al Stone <al.stone@linaro.org>
>>>> ---
>>>> drivers/acpi/Kconfig | 31 +++++++++--
>>>> drivers/acpi/Makefile | 7 ++-
>>>> drivers/acpi/processor_driver.c | 86 ++++++++++++++++++----------
>>>> drivers/cpufreq/Kconfig | 2 +-
>>>> drivers/cpufreq/Kconfig.x86 | 2 +
>>>> include/acpi/processor.h | 120 ++++++++++++++++++++++++++++------------
>>>> 6 files changed, 176 insertions(+), 72 deletions(-)
>>>>
>>>> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
>>>> index ab2cbb5..5942754 100644
>>>> --- a/drivers/acpi/Kconfig
>>>> +++ b/drivers/acpi/Kconfig
>>>> @@ -166,18 +166,39 @@ config ACPI_DOCK
>>>> This driver supports ACPI-controlled docking stations and removable
>>>> drive bays such as the IBM Ultrabay and the Dell Module Bay.
>>>>
>>>> -config ACPI_PROCESSOR
>>>> - tristate "Processor"
>>>> - select THERMAL
>>>> - select CPU_IDLE
>>>> +config ACPI_CST
>>>> + bool "ACPI C states (CST) driver"
>>>> + depends on ACPI_PROCESSOR
>>>> depends on X86 || IA64
>>>> + select CPU_IDLE
>>>> default y
>>>> help
>>>> This driver installs ACPI as the idle handler for Linux and uses
>>>> ACPI C2 and C3 processor states to save power on systems that
>>>> - support it. It is required by several flavors of cpufreq
>>>> + support it.
>>>> +
>>>> +config ACPI_PSS
>>>> + bool "ACPI P States (PSS) driver"
>>>> + depends on ACPI_PROCESSOR
>>>> + depends on X86 || IA64
>>>> + select THERMAL
>>>> + default y
>>>> + help
>>>> + This driver implements ACPI methods for controlling CPU performance
>>>> + using PSS methods as described in the ACPI spec. It also enables support
>>>> + for ACPI based performance throttling (TSS) and ACPI based thermal
>>>> + monitoring. It is required by several flavors of cpufreq
>>>> performance-state drivers.
>>>
>>> For starters, I don't like these new Kconfig options.
>>>
>>> Isn't there a way to implement what you need without adding them?
>>
>> We need to use the ACPI Processor driver for CPPC without including
>> all its current dependencies. (i.e. PSS, TSS, CSS etc.). The upcoming
>> LPI work from Sudeep will also face the same issue. I considered the
>> alternative of adding a probe routine which matches
>> ACPI_PROCESSOR_OBJECT/DEVICE_HID to each driver, but this seemed like
>> a better option. Do you have any other ideas?
>
> First of all, I don't see what _CST has to do with CPPC.
>
> Second, it looks like the problem is that x86 probably won't use CPPC,
> while arm64 probably won't use _PSS.
>
> That can be addressed by adding Kconfig options, but those options
> should not be user-selectable (because quite honestly users don't have
> to know what those things are and they don't care *and* things break
> if they make a wrong choice). Instead, I'd make architecture Kconfigs
> select those options automatically.
>
I've made changes locally. Basically s/ACPI_PSS/HAVE_ACPI_PSS/ and in
arch/x86/Kconfig; select HAVE_ACPI_PSS if ACPI. Similarly for CST.
Just wanted to check if there were any other comments before sending
out v7.
Thanks,
Ashwin.
next prev parent reply other threads:[~2015-07-08 19:16 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-15 20:09 [PATCH v6 0/7] CPUFreq driver using CPPC methods Ashwin Chaugule
2015-06-15 20:09 ` [PATCH v6 1/7] PCC: Initialize PCC Mailbox earlier at boot Ashwin Chaugule
2015-06-15 20:09 ` [PATCH v6 2/7] ACPI: Make ACPI processor driver more extensible Ashwin Chaugule
2015-07-08 1:07 ` Rafael J. Wysocki
2015-07-08 1:27 ` Ashwin Chaugule
2015-07-08 13:34 ` Rafael J. Wysocki
2015-07-08 13:42 ` Ashwin Chaugule
2015-07-08 19:16 ` Ashwin Chaugule [this message]
2015-07-08 19:55 ` Rafael J. Wysocki
2015-07-08 20:05 ` Ashwin Chaugule
2015-07-08 20:28 ` Ashwin Chaugule
2015-07-08 20:46 ` Rafael J. Wysocki
2015-07-08 21:46 ` Ashwin Chaugule
2015-07-08 22:21 ` Rafael J. Wysocki
2015-07-08 21:57 ` Ashwin Chaugule
2015-07-08 23:29 ` Rafael J. Wysocki
2015-07-08 23:33 ` Rafael J. Wysocki
2015-07-09 9:11 ` Sudeep Holla
2015-07-09 9:06 ` Sudeep Holla
2015-07-09 12:25 ` Ashwin Chaugule
2015-07-09 13:18 ` Sudeep Holla
2015-07-08 13:43 ` Sudeep Holla
2015-07-08 13:56 ` Ashwin Chaugule
2015-07-08 14:20 ` Sudeep Holla
2015-06-15 20:09 ` [PATCH v6 3/7] ACPI: Introduce CPU performance controls using CPPC Ashwin Chaugule
2015-06-15 20:09 ` [PATCH v6 4/7] CPPC: Add a CPUFreq driver for use with CPPC Ashwin Chaugule
2015-06-15 20:09 ` [PATCH v6 5/7] CPPC: Probe for CPPC tables for each ACPI Processor object Ashwin Chaugule
2015-06-15 20:09 ` [PATCH v6 6/7] PCC: Enable PCC only when needed Ashwin Chaugule
2015-06-15 20:09 ` [PATCH v6 7/7] ACPI: Add weak routines for ACPI CPU Hotplug Ashwin Chaugule
2015-06-29 17:23 ` [PATCH v6 0/7] CPUFreq driver using CPPC methods Ashwin Chaugule
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=CAJ5Y-ebW3aCSSs4UQFLpLFSfo7d9zPVfigoROjN80uXzG1sZLw@mail.gmail.com \
--to=ashwin.chaugule@linaro.org \
--cc=jaswinder.singh@linaro.org \
--cc=linaro-acpi@lists.linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=patches@linaro.org \
--cc=rafael@kernel.org \
--cc=rjw@rjwysocki.net \
--cc=sudeep.holla@arm.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).