[PATCH v8 0/6] power: refactor power management library
Stephen Hemminger
stephen at networkplumber.org
Wed Oct 23 03:40:39 CEST 2024
On Tue, 22 Oct 2024 18:41:26 +0000
Sivaprasad Tummala <sivaprasad.tummala at amd.com> wrote:
> This patchset refactors the power management library, addressing both
> core and uncore power management. The primary changes involve the
> creation of dedicated directories for each driver within
> 'drivers/power/core/*' and 'drivers/power/uncore/*'.
>
> This refactor significantly improves code organization, enhances
> clarity, and boosts maintainability. It lays the foundation for more
> focused development on individual drivers and facilitates seamless
> integration of future enhancements, particularly the AMD uncore driver.
>
> Furthermore, this effort aims to streamline code maintenance by
> consolidating common functions for cpufreq and cppc across various
> core drivers, thus reducing code duplication.
>
> Sivaprasad Tummala (6):
> power: refactor core power management library
> power: refactor uncore power management library
> test/power: removed function pointer validations
> drivers/power: uncore support for AMD EPYC processors
> maintainers: update for drivers/power
> power: rename library sources for cpu frequency management
>
> MAINTAINERS | 1 +
> app/test/test_power.c | 97 +-----
> app/test/test_power_cpufreq.c | 54 +--
> app/test/test_power_kvm_vm.c | 38 +-
> drivers/meson.build | 1 +
> .../power/acpi/acpi_cpufreq.c | 22 +-
> .../power/acpi/acpi_cpufreq.h | 6 +-
> drivers/power/acpi/meson.build | 10 +
> .../power/amd_pstate/amd_pstate_cpufreq.c | 24 +-
> .../power/amd_pstate/amd_pstate_cpufreq.h | 10 +-
> drivers/power/amd_pstate/meson.build | 10 +
> drivers/power/amd_uncore/amd_uncore.c | 329 ++++++++++++++++++
> drivers/power/amd_uncore/amd_uncore.h | 225 ++++++++++++
> drivers/power/amd_uncore/meson.build | 20 ++
> .../power/cppc/cppc_cpufreq.c | 22 +-
> .../power/cppc/cppc_cpufreq.h | 8 +-
> drivers/power/cppc/meson.build | 10 +
> .../power/intel_uncore/intel_uncore.c | 18 +-
> .../power/intel_uncore/intel_uncore.h | 9 +-
> drivers/power/intel_uncore/meson.build | 6 +
> .../power/kvm_vm}/guest_channel.c | 2 +-
> .../power/kvm_vm}/guest_channel.h | 0
> .../power/kvm_vm/kvm_vm.c | 22 +-
> .../power/kvm_vm/kvm_vm.h | 6 +-
> drivers/power/kvm_vm/meson.build | 14 +
> drivers/power/meson.build | 14 +
> drivers/power/pstate/meson.build | 10 +
> .../power/pstate/pstate_cpufreq.c | 22 +-
> .../power/pstate/pstate_cpufreq.h | 6 +-
> examples/distributor/main.c | 2 +-
> examples/l3fwd-power/main.c | 14 +-
> examples/l3fwd-power/perf_core.c | 2 +-
> examples/vm_power_manager/channel_monitor.c | 2 +-
> examples/vm_power_manager/channel_monitor.h | 2 +-
> examples/vm_power_manager/guest_cli/main.c | 2 +-
> .../guest_cli/vm_power_cli_guest.c | 2 +-
> examples/vm_power_manager/power_manager.c | 2 +-
> lib/power/meson.build | 13 +-
> lib/power/power_common.c | 2 +-
> lib/power/power_common.h | 18 +-
> lib/power/power_cpufreq.h | 191 ++++++++++
> lib/power/power_uncore_ops.h | 244 +++++++++++++
> lib/power/rte_power.c | 257 --------------
> lib/power/rte_power_cpufreq.c | 230 ++++++++++++
> .../{rte_power.h => rte_power_cpufreq.h} | 120 ++++---
> lib/power/rte_power_pmd_mgmt.h | 2 +-
> lib/power/rte_power_uncore.c | 256 +++++++-------
> lib/power/rte_power_uncore.h | 61 ++--
> lib/power/version.map | 15 +
> 49 files changed, 1746 insertions(+), 707 deletions(-)
> rename lib/power/power_acpi_cpufreq.c => drivers/power/acpi/acpi_cpufreq.c (95%)
> rename lib/power/power_acpi_cpufreq.h => drivers/power/acpi/acpi_cpufreq.h (98%)
> create mode 100644 drivers/power/acpi/meson.build
> rename lib/power/power_amd_pstate_cpufreq.c => drivers/power/amd_pstate/amd_pstate_cpufreq.c (95%)
> rename lib/power/power_amd_pstate_cpufreq.h => drivers/power/amd_pstate/amd_pstate_cpufreq.h (96%)
> create mode 100644 drivers/power/amd_pstate/meson.build
> create mode 100644 drivers/power/amd_uncore/amd_uncore.c
> create mode 100644 drivers/power/amd_uncore/amd_uncore.h
> create mode 100644 drivers/power/amd_uncore/meson.build
> rename lib/power/power_cppc_cpufreq.c => drivers/power/cppc/cppc_cpufreq.c (95%)
> rename lib/power/power_cppc_cpufreq.h => drivers/power/cppc/cppc_cpufreq.h (97%)
> create mode 100644 drivers/power/cppc/meson.build
> rename lib/power/power_intel_uncore.c => drivers/power/intel_uncore/intel_uncore.c (95%)
> rename lib/power/power_intel_uncore.h => drivers/power/intel_uncore/intel_uncore.h (97%)
> create mode 100644 drivers/power/intel_uncore/meson.build
> rename {lib/power => drivers/power/kvm_vm}/guest_channel.c (99%)
> rename {lib/power => drivers/power/kvm_vm}/guest_channel.h (100%)
> rename lib/power/power_kvm_vm.c => drivers/power/kvm_vm/kvm_vm.c (82%)
> rename lib/power/power_kvm_vm.h => drivers/power/kvm_vm/kvm_vm.h (98%)
> create mode 100644 drivers/power/kvm_vm/meson.build
> create mode 100644 drivers/power/meson.build
> create mode 100644 drivers/power/pstate/meson.build
> rename lib/power/power_pstate_cpufreq.c => drivers/power/pstate/pstate_cpufreq.c (96%)
> rename lib/power/power_pstate_cpufreq.h => drivers/power/pstate/pstate_cpufreq.h (98%)
> create mode 100644 lib/power/power_cpufreq.h
> create mode 100644 lib/power/power_uncore_ops.h
> delete mode 100644 lib/power/rte_power.c
> create mode 100644 lib/power/rte_power_cpufreq.c
> rename lib/power/{rte_power.h => rte_power_cpufreq.h} (73%)
>
This has some issues with documentation.
$ ninja -C build doc
ninja: Entering directory `build'
[3/6] Generating doc/api/doxygen-html with a custom command
/home/shemminger/DPDK/power/doc/api/doxy-api-index.md:105: warning: unable to resolve reference to 'rte_power.h' for \ref command
[5/6] Running external command doc (wrapped by meson to set env)
Building docs: Doxygen_API(HTML) Doxygen_API(Manpage) DTS_API_HTML HTML_Guides
More information about the dev
mailing list