From: Sudeep Holla <sudeep.holla@arm.com>
To: Ashwin Chaugule <ashwin.chaugule@linaro.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>,
"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>
Subject: Re: [PATCH v6 2/7] ACPI: Make ACPI processor driver more extensible
Date: Wed, 08 Jul 2015 15:20:04 +0100 [thread overview]
Message-ID: <559D3194.2000502@arm.com> (raw)
In-Reply-To: <CAJ5Y-eYmjmSbSx6WojYGXv9iskJ5ty6f2eFu0iyKD4if5GPMhg@mail.gmail.com>
On 08/07/15 14:56, Ashwin Chaugule wrote:
> Hi Sudeep,
>
> On 8 July 2015 at 09:43, Sudeep Holla <sudeep.holla@arm.com> wrote:
>>
>>
>> On 08/07/15 02:27, Ashwin Chaugule 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.
>>
>>
>> Ashwin, I am trying to keep Kconfig options minimum, iff necessary and
>> selected by ARCH code(i.e. not user selectable). Also I am not entirely
>> sure if we need to make PSS and CPPC mutually exclusive.
>
> Agree. Moving this to ARCH does seem like a better option. I need to
> explore that some more. Per the ACPI spec, the OS is not expected to
> support PSS and CPPC at runtime. I want to avoid getting into
> whitelist/blacklist issues which would be inevitable if we keep both
> available at runtime. Some of the X86 drivers run into this already.
>
OK, but as you say, both still be enabled statically while only one of
then should be active at run-time.
>>
>> I had seen patches to support PSS on ARM and if we have to support
>> single Image to handle both they can't be exclusive.
>
> Theres been one attempt about 1.5 years ago and AFAIK those folks have
> completely backed out of the ARM64 Server space . ;) We can revisit
> when someone proposes a more recent solution for PSS on ARM64. It
> shouldn't be too hard to change the Kconfig dependencies accordingly.
>
While I too can only guess that they have backed off, since CPPC
requires firmware, and if the hardware has PSS like interface, I can
imagine vendors pushing for that for convenience, so I would not rule
that out completely. But I agree as along as it can be changed easily,
we can defer that until there's a real hardware.
Regards,
Sudeep
next prev parent reply other threads:[~2015-07-08 14:20 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
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 [this message]
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=559D3194.2000502@arm.com \
--to=sudeep.holla@arm.com \
--cc=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=rjw@rjwysocki.net \
--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).