mbox series

[0/8] cppc_cpufreq: fix, clarify and improve support

Message ID 20201105125524.4409-1-ionela.voinescu@arm.com (mailing list archive)
Headers show
Series cppc_cpufreq: fix, clarify and improve support | expand

Message

Ionela Voinescu Nov. 5, 2020, 12:55 p.m. UTC
Hi guys,

I found myself staring a bit too much at this driver in the past weeks
and that's likely the cause for me coming up with this series of 8
patches that cleans up, clarifies and reworks parts of it, as follows:

 - patches 1-3/8: trivial clean-up and renaming with the purpose to
                  improve readability
 - patch 4/8: replace previous per-cpu data structures with lists of
              domains and CPUs to get more efficient storage for driver
              data and fix previous issues in case of CPU hotplugging,
              as discussed at [1].
 - patches 5-6/8: a few fixes and clarifications: mostly making sure
                  the behavior described in the comments and debug
                  messages matches the code and there is clear
                  indication of what is supported and how.
 - patch 7/8: use the existing freqdomains_cpus attribute to inform
              the user on frequency domains.
 - patch 8/8: acpi: replace ALL coordination with NONE coordination
                    when errors are find parsing the _PSD domains
              (as described in the comments in the code).

Hopefully you'll find this useful for ease of maintenance and ease of
future development of the driver.

This functionality was tested on a Juno platform with modified _PSD
tables to test the functionality for all currently supported
coordination types: ANY, HW, NONE.

The current code is based on v5.10-rc2.

Thanks,
Ionela.

[1] https://lore.kernel.org/linux-pm/20200922162540.GB796@arm.com/

Ionela Voinescu (8):
  cppc_cpufreq: fix misspelling, code style and readability issues
  cppc_cpufreq: clean up cpu, cpu_num and cpunum variable use
  cppc_cpufreq: simplify use of performance capabilities
  cppc_cpufreq: replace per-cpu structures with lists
  cppc_cpufreq: use policy->cpu as driver of frequency setting
  cppc_cpufreq: clarify support for coordination types
  cppc_cpufreq: expose information on frequency domains
  acpi: fix NONE coordination for domain mapping failure

 .../ABI/testing/sysfs-devices-system-cpu      |   3 +-
 drivers/acpi/cppc_acpi.c                      | 126 +++---
 drivers/acpi/processor_perflib.c              |   2 +-
 drivers/cpufreq/cppc_cpufreq.c                | 358 +++++++++++-------
 include/acpi/cppc_acpi.h                      |  14 +-
 5 files changed, 277 insertions(+), 226 deletions(-)

Comments

Rafael J. Wysocki Nov. 17, 2020, 2:59 p.m. UTC | #1
On Thu, Nov 5, 2020 at 1:56 PM Ionela Voinescu <ionela.voinescu@arm.com> wrote:
>
> Hi guys,
>
> I found myself staring a bit too much at this driver in the past weeks
> and that's likely the cause for me coming up with this series of 8
> patches that cleans up, clarifies and reworks parts of it, as follows:
>
>  - patches 1-3/8: trivial clean-up and renaming with the purpose to
>                   improve readability
>  - patch 4/8: replace previous per-cpu data structures with lists of
>               domains and CPUs to get more efficient storage for driver
>               data and fix previous issues in case of CPU hotplugging,
>               as discussed at [1].
>  - patches 5-6/8: a few fixes and clarifications: mostly making sure
>                   the behavior described in the comments and debug
>                   messages matches the code and there is clear
>                   indication of what is supported and how.
>  - patch 7/8: use the existing freqdomains_cpus attribute to inform
>               the user on frequency domains.
>  - patch 8/8: acpi: replace ALL coordination with NONE coordination
>                     when errors are find parsing the _PSD domains
>               (as described in the comments in the code).
>
> Hopefully you'll find this useful for ease of maintenance and ease of
> future development of the driver.
>
> This functionality was tested on a Juno platform with modified _PSD
> tables to test the functionality for all currently supported
> coordination types: ANY, HW, NONE.
>
> The current code is based on v5.10-rc2.
>
> Thanks,
> Ionela.
>
> [1] https://lore.kernel.org/linux-pm/20200922162540.GB796@arm.com/
>
> Ionela Voinescu (8):
>   cppc_cpufreq: fix misspelling, code style and readability issues
>   cppc_cpufreq: clean up cpu, cpu_num and cpunum variable use
>   cppc_cpufreq: simplify use of performance capabilities
>   cppc_cpufreq: replace per-cpu structures with lists
>   cppc_cpufreq: use policy->cpu as driver of frequency setting
>   cppc_cpufreq: clarify support for coordination types
>   cppc_cpufreq: expose information on frequency domains
>   acpi: fix NONE coordination for domain mapping failure
>
>  .../ABI/testing/sysfs-devices-system-cpu      |   3 +-
>  drivers/acpi/cppc_acpi.c                      | 126 +++---
>  drivers/acpi/processor_perflib.c              |   2 +-
>  drivers/cpufreq/cppc_cpufreq.c                | 358 +++++++++++-------
>  include/acpi/cppc_acpi.h                      |  14 +-
>  5 files changed, 277 insertions(+), 226 deletions(-)
>
> --

All patches applied as 5.11 material (with a minor subject edit in the
last patch), thanks!

In the future, though, please CC all/any ACPI-related changes to the
linux-acpi mailing list.
Ionela Voinescu Nov. 17, 2020, 3:32 p.m. UTC | #2
Hi Rafael,

On Tuesday 17 Nov 2020 at 15:59:24 (+0100), Rafael J. Wysocki wrote:
> On Thu, Nov 5, 2020 at 1:56 PM Ionela Voinescu <ionela.voinescu@arm.com> wrote:
> >
> > Hi guys,
> >
> > I found myself staring a bit too much at this driver in the past weeks
> > and that's likely the cause for me coming up with this series of 8
> > patches that cleans up, clarifies and reworks parts of it, as follows:
> >
> >  - patches 1-3/8: trivial clean-up and renaming with the purpose to
> >                   improve readability
> >  - patch 4/8: replace previous per-cpu data structures with lists of
> >               domains and CPUs to get more efficient storage for driver
> >               data and fix previous issues in case of CPU hotplugging,
> >               as discussed at [1].
> >  - patches 5-6/8: a few fixes and clarifications: mostly making sure
> >                   the behavior described in the comments and debug
> >                   messages matches the code and there is clear
> >                   indication of what is supported and how.
> >  - patch 7/8: use the existing freqdomains_cpus attribute to inform
> >               the user on frequency domains.
> >  - patch 8/8: acpi: replace ALL coordination with NONE coordination
> >                     when errors are find parsing the _PSD domains
> >               (as described in the comments in the code).
> >
> > Hopefully you'll find this useful for ease of maintenance and ease of
> > future development of the driver.
> >
> > This functionality was tested on a Juno platform with modified _PSD
> > tables to test the functionality for all currently supported
> > coordination types: ANY, HW, NONE.
> >
> > The current code is based on v5.10-rc2.
> >
> > Thanks,
> > Ionela.
> >
> > [1] https://lore.kernel.org/linux-pm/20200922162540.GB796@arm.com/
> >
> > Ionela Voinescu (8):
> >   cppc_cpufreq: fix misspelling, code style and readability issues
> >   cppc_cpufreq: clean up cpu, cpu_num and cpunum variable use
> >   cppc_cpufreq: simplify use of performance capabilities
> >   cppc_cpufreq: replace per-cpu structures with lists
> >   cppc_cpufreq: use policy->cpu as driver of frequency setting
> >   cppc_cpufreq: clarify support for coordination types
> >   cppc_cpufreq: expose information on frequency domains
> >   acpi: fix NONE coordination for domain mapping failure
> >
> >  .../ABI/testing/sysfs-devices-system-cpu      |   3 +-
> >  drivers/acpi/cppc_acpi.c                      | 126 +++---
> >  drivers/acpi/processor_perflib.c              |   2 +-
> >  drivers/cpufreq/cppc_cpufreq.c                | 358 +++++++++++-------
> >  include/acpi/cppc_acpi.h                      |  14 +-
> >  5 files changed, 277 insertions(+), 226 deletions(-)
> >
> > --
> 
> All patches applied as 5.11 material (with a minor subject edit in the
> last patch), thanks!
> 

Patch 4/8 was not acked. I was about to push a new version in which I
fix the scenario that Jeremy mentioned. Would you like me to push that
as a separate patch on top of this series, or should I push a new
version of this series?

All the other patches will be the same.

> In the future, though, please CC all/any ACPI-related changes to the
> linux-acpi mailing list.

Will do!

Thank you,
Ionela.
Rafael J. Wysocki Nov. 17, 2020, 4:30 p.m. UTC | #3
On Tue, Nov 17, 2020 at 4:32 PM Ionela Voinescu <ionela.voinescu@arm.com> wrote:
>
> Hi Rafael,
>
> On Tuesday 17 Nov 2020 at 15:59:24 (+0100), Rafael J. Wysocki wrote:
> > On Thu, Nov 5, 2020 at 1:56 PM Ionela Voinescu <ionela.voinescu@arm.com> wrote:
> > >
> > > Hi guys,
> > >
> > > I found myself staring a bit too much at this driver in the past weeks
> > > and that's likely the cause for me coming up with this series of 8
> > > patches that cleans up, clarifies and reworks parts of it, as follows:
> > >
> > >  - patches 1-3/8: trivial clean-up and renaming with the purpose to
> > >                   improve readability
> > >  - patch 4/8: replace previous per-cpu data structures with lists of
> > >               domains and CPUs to get more efficient storage for driver
> > >               data and fix previous issues in case of CPU hotplugging,
> > >               as discussed at [1].
> > >  - patches 5-6/8: a few fixes and clarifications: mostly making sure
> > >                   the behavior described in the comments and debug
> > >                   messages matches the code and there is clear
> > >                   indication of what is supported and how.
> > >  - patch 7/8: use the existing freqdomains_cpus attribute to inform
> > >               the user on frequency domains.
> > >  - patch 8/8: acpi: replace ALL coordination with NONE coordination
> > >                     when errors are find parsing the _PSD domains
> > >               (as described in the comments in the code).
> > >
> > > Hopefully you'll find this useful for ease of maintenance and ease of
> > > future development of the driver.
> > >
> > > This functionality was tested on a Juno platform with modified _PSD
> > > tables to test the functionality for all currently supported
> > > coordination types: ANY, HW, NONE.
> > >
> > > The current code is based on v5.10-rc2.
> > >
> > > Thanks,
> > > Ionela.
> > >
> > > [1] https://lore.kernel.org/linux-pm/20200922162540.GB796@arm.com/
> > >
> > > Ionela Voinescu (8):
> > >   cppc_cpufreq: fix misspelling, code style and readability issues
> > >   cppc_cpufreq: clean up cpu, cpu_num and cpunum variable use
> > >   cppc_cpufreq: simplify use of performance capabilities
> > >   cppc_cpufreq: replace per-cpu structures with lists
> > >   cppc_cpufreq: use policy->cpu as driver of frequency setting
> > >   cppc_cpufreq: clarify support for coordination types
> > >   cppc_cpufreq: expose information on frequency domains
> > >   acpi: fix NONE coordination for domain mapping failure
> > >
> > >  .../ABI/testing/sysfs-devices-system-cpu      |   3 +-
> > >  drivers/acpi/cppc_acpi.c                      | 126 +++---
> > >  drivers/acpi/processor_perflib.c              |   2 +-
> > >  drivers/cpufreq/cppc_cpufreq.c                | 358 +++++++++++-------
> > >  include/acpi/cppc_acpi.h                      |  14 +-
> > >  5 files changed, 277 insertions(+), 226 deletions(-)
> > >
> > > --
> >
> > All patches applied as 5.11 material (with a minor subject edit in the
> > last patch), thanks!
> >
>
> Patch 4/8 was not acked. I was about to push a new version in which I
> fix the scenario that Jeremy mentioned.

Well, it wasn't clear to me what you wanted to do about it.

> Would you like me to push that
> as a separate patch on top of this series,

Yes, please.
Ionela Voinescu Nov. 17, 2020, 7:04 p.m. UTC | #4
On Tuesday 17 Nov 2020 at 17:30:33 (+0100), Rafael J. Wysocki wrote:
[..]
> > > > Ionela Voinescu (8):
> > > >   cppc_cpufreq: fix misspelling, code style and readability issues
> > > >   cppc_cpufreq: clean up cpu, cpu_num and cpunum variable use
> > > >   cppc_cpufreq: simplify use of performance capabilities
> > > >   cppc_cpufreq: replace per-cpu structures with lists
> > > >   cppc_cpufreq: use policy->cpu as driver of frequency setting
> > > >   cppc_cpufreq: clarify support for coordination types
> > > >   cppc_cpufreq: expose information on frequency domains
> > > >   acpi: fix NONE coordination for domain mapping failure
> > > >
> > > >  .../ABI/testing/sysfs-devices-system-cpu      |   3 +-
> > > >  drivers/acpi/cppc_acpi.c                      | 126 +++---
> > > >  drivers/acpi/processor_perflib.c              |   2 +-
> > > >  drivers/cpufreq/cppc_cpufreq.c                | 358 +++++++++++-------
> > > >  include/acpi/cppc_acpi.h                      |  14 +-
> > > >  5 files changed, 277 insertions(+), 226 deletions(-)
> > > >
> > > > --
> > >
> > > All patches applied as 5.11 material (with a minor subject edit in the
> > > last patch), thanks!
> > >
> >
> > Patch 4/8 was not acked. I was about to push a new version in which I
> > fix the scenario that Jeremy mentioned.
> 
> Well, it wasn't clear to me what you wanted to do about it.
> 

Sorry about the confusion.

> > Would you like me to push that
> > as a separate patch on top of this series,
> 
> Yes, please.

Sent at:
https://lore.kernel.org/linux-pm/20201117184920.17036-1-ionela.voinescu@arm.com/

Thank you,
Ionela.