[dpdk-dev] [EXT] [PATCH v2 7/7] l3fwd-power: add auto-selection of default mode
Harman Kalra
hkalra at marvell.com
Fri Jun 19 09:37:12 CEST 2020
On Thu, Jun 18, 2020 at 06:18:29PM +0100, Anatoly Burakov wrote:
> External Email
>
> ----------------------------------------------------------------------
> Currently, the application does support running without the power
> library being initialized, but it has to be specifically requested. On
> platforms without support for frequency scaling using the power library,
> we can just enable interrupt-only mode by default.
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
> Suggested-by: Jerin Jacob <jerinjacobk at gmail.com>
> ---
Application probed the platform for frequency scaling support, since
octeontx2 doesnt support it, interrupt-only mode got enabled by default.
Tested-by: Harman Kalra <hkalra at marvell.com>
> examples/l3fwd-power/main.c | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
> index 51acbfd87d..a66599e734 100644
> --- a/examples/l3fwd-power/main.c
> +++ b/examples/l3fwd-power/main.c
> @@ -2412,6 +2412,20 @@ launch_timer(unsigned int lcore_id)
> return 0;
> }
>
> +static int
> +autodetect_mode(void)
> +{
> + /*
> + * Empty poll and telemetry modes have to be specifically requested to
> + * be enabled, but we can auto-detect between legacy mode with or
> + * without interrupts. Both ACPI and pstate can be used.
> + */
> + if (rte_power_check_env_supported(PM_ENV_ACPI_CPUFREQ))
> + return APP_MODE_LEGACY;
> + if (rte_power_check_env_supported(PM_ENV_PSTATE_CPUFREQ))
> + return APP_MODE_LEGACY;
> + return APP_MODE_INTERRUPT;
> +}
>
> int
> main(int argc, char **argv)
> @@ -2449,7 +2463,7 @@ main(int argc, char **argv)
> rte_exit(EXIT_FAILURE, "Invalid L3FWD parameters\n");
>
> if (app_mode == APP_MODE_DEFAULT)
> - app_mode = APP_MODE_LEGACY;
> + app_mode = autodetect_mode();
>
> /* only legacy and empty poll mode rely on power library */
> if ((app_mode == APP_MODE_LEGACY || app_mode == APP_MODE_EMPTY_POLL) &&
> --
> 2.17.1
More information about the dev
mailing list