Hi, Thomas > -----邮件原件----- > 发件人: Thomas Monjalon <tho...@monjalon.net> > 发送时间: Friday, November 11, 2022 4:22 PM > 收件人: Feifei Wang <feifei.wa...@arm.com> > 抄送: David Hunt <david.h...@intel.com>; dev@dpdk.org; > david.march...@redhat.com; step...@networkplumber.org; nd > <n...@arm.com>; Ruifeng Wang <ruifeng.w...@arm.com>; Honnappa > Nagarahalli <honnappa.nagaraha...@arm.com> > 主题: Re: [PATCH v3 3/3] examples/l3fwd-power: enable PMD power > monitor on Arm > > 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.wa...@arm.com> > > Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com> > > Acked-by: David Hunt <david.h...@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.
Thanks for the comment. I will move this into API. Best Regards Feifei >