Message ID | 20220802151149.2123699-1-Shyam-sundar.S-k@amd.com (mailing list archive) |
---|---|
Headers | show |
Series | platform/x86/amd/pmf: Introduce AMD PMF Driver | expand |
Hi, On 8/2/22 17:11, Shyam Sundar S K wrote: > AMD PMF Driver (a.k.a Platform Management Framework) provides a > centralized framework based on sensor inputs, OS hints, platform state > and APU metrics to dynamically manage perf, power and system thermals. > > The goal of the driver is to enhance end user experience by making AMD > PCs smarter, quieter, power efficient by adapting to user behavior and > environment. > > The larger goals include: > > - Enable easy customization of smart PC solutions by OEMs. > - Provide a framework for OEMs to add in custom algorithms and solutions > - Improve standby and dynamic platform power through active power > management of platform devices. > > In this series, support for following features has been added. > - "Static Power Slider" meant to manage the power budget based on the > power modes or the slider position. > - "Auto Mode" tracks the moving power average of the APU and takes > intelligent decisions to switch between different modes. > > Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> > > v4: > ----------- > - Remove duplicate variables in auto_mode_mode_config() structure > - call apmf_event_handler() handler manually so that we don't miss out > any notifies > - Misc. error handling. Thank you for your patch, I've applied this patch to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans The patches sitting here allows the LKP testing infra to test the patches. I will move these over to a 6.0-rc1 based feature branch once 6.0-rc1 is out. Note I did do a few small last fixes while merging this, see my replies to individual patches. Please test the version in the review-hans branch and base any future patches on top of the version in the review-hans branch. Regards, Hans > v3: > ----------- > - Cleanup ACPI code path > - Optimize metrics table collection mechanism > - Avoid races between the acpi handler and the metrics table worker > thread. > - Remove redundant structures and functions. > - Improve the code handling the apmf handler routine. > > v2 Resend: > ----------- > - Patches from 9 to 11 were not sent due to wrong email address. Hence > resending. > > v1->v2: > ------- > - optimize the ACPI path by having a common routine > apmf_if_call_store_buffer() > - Simply Static slider interaction with platform_profile > - Remove CONFIG_DEBUG_FS stub code > - Drop changes introduced in platform_profile_get() > - Drop CnQF support. Will be sent as a patch-set later. > - Other code improvements > > Shyam Sundar S K (11): > platform/x86/amd/pmf: Add support for PMF core layer > platform/x86/amd/pmf: Add support for PMF APCI layer > platform/x86/amd/pmf: Add support SPS PMF feature > platform/x86/amd/pmf: Add debugfs information > platform/x86/amd/pmf: Add heartbeat signal support > platform/x86/amd/pmf: Add fan control support > platform/x86/amd/pmf: Get performance metrics from PMFW > platform/x86/amd/pmf: Add support for Auto mode feature > platform/x86/amd/pmf: Handle AMT and CQL events for Auto mode > platform/x86/amd/pmf: Force load driver on older supported platforms > MAINTAINERS: Add AMD PMF driver entry > > MAINTAINERS | 7 + > drivers/platform/x86/amd/Kconfig | 2 + > drivers/platform/x86/amd/Makefile | 1 + > drivers/platform/x86/amd/pmf/Kconfig | 15 + > drivers/platform/x86/amd/pmf/Makefile | 9 + > drivers/platform/x86/amd/pmf/acpi.c | 287 +++++++++++++++++ > drivers/platform/x86/amd/pmf/auto-mode.c | 301 ++++++++++++++++++ > drivers/platform/x86/amd/pmf/core.c | 385 +++++++++++++++++++++++ > drivers/platform/x86/amd/pmf/pmf.h | 329 +++++++++++++++++++ > drivers/platform/x86/amd/pmf/sps.c | 149 +++++++++ > 10 files changed, 1485 insertions(+) > create mode 100644 drivers/platform/x86/amd/pmf/Kconfig > create mode 100644 drivers/platform/x86/amd/pmf/Makefile > create mode 100644 drivers/platform/x86/amd/pmf/acpi.c > create mode 100644 drivers/platform/x86/amd/pmf/auto-mode.c > create mode 100644 drivers/platform/x86/amd/pmf/core.c > create mode 100644 drivers/platform/x86/amd/pmf/pmf.h > create mode 100644 drivers/platform/x86/amd/pmf/sps.c >
AMD PMF Driver (a.k.a Platform Management Framework) provides a centralized framework based on sensor inputs, OS hints, platform state and APU metrics to dynamically manage perf, power and system thermals. The goal of the driver is to enhance end user experience by making AMD PCs smarter, quieter, power efficient by adapting to user behavior and environment. The larger goals include: - Enable easy customization of smart PC solutions by OEMs. - Provide a framework for OEMs to add in custom algorithms and solutions - Improve standby and dynamic platform power through active power management of platform devices. In this series, support for following features has been added. - "Static Power Slider" meant to manage the power budget based on the power modes or the slider position. - "Auto Mode" tracks the moving power average of the APU and takes intelligent decisions to switch between different modes. Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> v4: ----------- - Remove duplicate variables in auto_mode_mode_config() structure - call apmf_event_handler() handler manually so that we don't miss out any notifies - Misc. error handling. v3: ----------- - Cleanup ACPI code path - Optimize metrics table collection mechanism - Avoid races between the acpi handler and the metrics table worker thread. - Remove redundant structures and functions. - Improve the code handling the apmf handler routine. v2 Resend: ----------- - Patches from 9 to 11 were not sent due to wrong email address. Hence resending. v1->v2: ------- - optimize the ACPI path by having a common routine apmf_if_call_store_buffer() - Simply Static slider interaction with platform_profile - Remove CONFIG_DEBUG_FS stub code - Drop changes introduced in platform_profile_get() - Drop CnQF support. Will be sent as a patch-set later. - Other code improvements Shyam Sundar S K (11): platform/x86/amd/pmf: Add support for PMF core layer platform/x86/amd/pmf: Add support for PMF APCI layer platform/x86/amd/pmf: Add support SPS PMF feature platform/x86/amd/pmf: Add debugfs information platform/x86/amd/pmf: Add heartbeat signal support platform/x86/amd/pmf: Add fan control support platform/x86/amd/pmf: Get performance metrics from PMFW platform/x86/amd/pmf: Add support for Auto mode feature platform/x86/amd/pmf: Handle AMT and CQL events for Auto mode platform/x86/amd/pmf: Force load driver on older supported platforms MAINTAINERS: Add AMD PMF driver entry MAINTAINERS | 7 + drivers/platform/x86/amd/Kconfig | 2 + drivers/platform/x86/amd/Makefile | 1 + drivers/platform/x86/amd/pmf/Kconfig | 15 + drivers/platform/x86/amd/pmf/Makefile | 9 + drivers/platform/x86/amd/pmf/acpi.c | 287 +++++++++++++++++ drivers/platform/x86/amd/pmf/auto-mode.c | 301 ++++++++++++++++++ drivers/platform/x86/amd/pmf/core.c | 385 +++++++++++++++++++++++ drivers/platform/x86/amd/pmf/pmf.h | 329 +++++++++++++++++++ drivers/platform/x86/amd/pmf/sps.c | 149 +++++++++ 10 files changed, 1485 insertions(+) create mode 100644 drivers/platform/x86/amd/pmf/Kconfig create mode 100644 drivers/platform/x86/amd/pmf/Makefile create mode 100644 drivers/platform/x86/amd/pmf/acpi.c create mode 100644 drivers/platform/x86/amd/pmf/auto-mode.c create mode 100644 drivers/platform/x86/amd/pmf/core.c create mode 100644 drivers/platform/x86/amd/pmf/pmf.h create mode 100644 drivers/platform/x86/amd/pmf/sps.c