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

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

 



On 8 July 2015 at 16:05, Ashwin Chaugule <ashwin.chaugule@xxxxxxxxxx> wrote:
> On 8 July 2015 at 15:55, Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote:
>> Hi Ashwin,
>>
>> On Wed, Jul 8, 2015 at 9:16 PM, Ashwin Chaugule
>> <ashwin.chaugule@xxxxxxxxxx> wrote:
>>> Hi Rafael,
>>>
>>> On 8 July 2015 at 09:34, Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote:
>>>> Hi Ashwin,
>>>>
>>>> On Wed, Jul 8, 2015 at 3:27 AM, Ashwin Chaugule
>>>> <ashwin.chaugule@xxxxxxxxxx> 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. 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.
>>
>> Can you please just send the new version of the $subject patch alone for now?
>
> Attached below. (hope that worked.)
>
>>
>> Also I'm still unsure what the connection between _CST and CPPC is.
>>
>
> There isnt. But I'm missing where I've implied the dependency?

Perhaps the confusion is coming from the introduction of ACPI_CST in
this file. I could leave it as it is and just separate out the
ACPI_PSS bits. But I figured, while I'm at it, I'd introduce ACPI_CST,
since we know the LPI stuff is coming up soon as a CST alternative
anyway. So if you prefer, I can drop the CST bits and maybe Sudeep can
address that as part of his LPI patchset?

Thanks,
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