Re: [PATCH v6 2/7] ACPI: Make ACPI processor driver more extensible

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sudeep,

On 8 July 2015 at 09:43, Sudeep Holla <sudeep.holla@xxxxxxx> wrote:
>
>
> On 08/07/15 02:27, Ashwin Chaugule wrote:
>>
>> On 7 July 2015 at 21:07, Rafael J. Wysocki <rjw@xxxxxxxxxxxxx> 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@xxxxxxxxxx>
>>>> Reviewed-by: Al Stone <al.stone@xxxxxxxxxx>
>>>> ---
>>>>   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.

>
> 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.

Regards,
Ashwin.
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux