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.bura...@intel.com> > Suggested-by: Jerin Jacob <jerinjac...@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 <hka...@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