[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