Currently, the uncore power library requires user to manually set environment variables and call rte_power_uncore_init() one by one in their applications, which is not good to use. Since these steps are essentially part of the driver initialization, they can be encapsulated to one interface in uncore core. The uncore core should be responsiable for detecting and initializing the uncore driver on the platform.
In order to reach above goal, this series has made the following changes: 1. Some cleancode and rewrok uncore in l3fwd-power. 2. Add automatic detection of uncore driver to support more uncore drivers when application use RTE_UNCORE_PM_ENV_AUTO_DETECT. 3. Introduce new uncore init and deinit API in uncore core. Note: 1. The patch 5/7 use package-0 and die-0 to probe uncore driver is just avoided to break ABI. The good way is to add new probe callback in each uncore driver to tell uncore core. 2. We plan that the new uncore init and deinit API will replace the rte_power_set/get_uncore_env() and remove them in 26.11 version. Huisong Li (7): examples/l3fwd-power: fix uncore deinit for non-legacy examples/l3fwd-power: support to set power QoS on any mode examples/l3fwd-power: fix uncore help and log info examples/l3fwd-power: relocate uncore initialization power: support automatic detection of uncore driver power: add global uncore init and deinit interface examples/l3fwd-power: switch to new init/deinit uncore API .../sample_app_ug/l3_forward_power_man.rst | 2 +- examples/l3fwd-power/main.c | 272 +++++++++--------- lib/power/rte_power_uncore.c | 132 ++++++++- lib/power/rte_power_uncore.h | 20 ++ 4 files changed, 275 insertions(+), 151 deletions(-) -- 2.33.0

