[PATCH v3 3/3] examples/l3fwd-power: enable PMD power monitor on Arm
Thomas Monjalon
thomas at monjalon.net
Fri Nov 11 09:22:11 CET 2022
11/11/2022 08:26, Feifei Wang:
> For Arm aarch, power monitor uses WFE instruction to enable, which can
> not exit automatically within the time limit. This means
> 'rte_power_monitor_wakeup' API needs to be called to wake up sleep cores
> if there is no store operation to monitored address.
>
> Furthermore, we disable power monitor feature on the main core so that
> it can be used to wake up other sleeping cores after it exit from loop.
>
> Signed-off-by: Feifei Wang <feifei.wang2 at arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang at arm.com>
> Acked-by: David Hunt <david.hunt at intel.com>
> ---
> +#if defined(RTE_ARCH_ARM64)
> + /* Ensure the main lcore does not enter the power-monitor state,
> + * so that it can be used to wake up other lcores on ARM.
> + * This is due to WFE instruction has no timeout wake-up mechanism,
> + * and if users want to exit actively, the main lcore is needed
> + * to send SEV instruction to wake up other lcores.
> + */
> + unsigned int main_lcore = rte_get_main_lcore();
> + if (lcore_id == main_lcore &&
> + pmgmt_type == RTE_POWER_MGMT_TYPE_MONITOR)
> + continue;
> +#endif
We need to have this logic abstracted in the API for all architectures.
We cannot afford having such #ifdef per CPU in the application.
More information about the dev
mailing list