> -----邮件原件----- > 发件人: Stephen Hemminger <step...@networkplumber.org> > 发送时间: Friday, October 21, 2022 6:10 AM > 收件人: Feifei Wang <feifei.wa...@arm.com> > 抄送: David Hunt <david.h...@intel.com>; dev@dpdk.org; nd > <n...@arm.com>; Ruifeng Wang <ruifeng.w...@arm.com> > 主题: Re: [PATCH v1 3/3] examples/l3fwd-power: enable PMD power mgmt > on Arm > > On Thu, 25 Aug 2022 14:42:51 +0800 > Feifei Wang <feifei.wa...@arm.com> wrote: > > > diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd- > power/main.c > > index 887c6eae3f..2bd0d700f0 100644 > > --- a/examples/l3fwd-power/main.c > > +++ b/examples/l3fwd-power/main.c > > @@ -432,8 +432,16 @@ static void > > signal_exit_now(int sigtype) > > { > > > > - if (sigtype == SIGINT) > > + if (sigtype == SIGINT) { > > +#if defined(RTE_ARCH_ARM64) > > + /** > > + * wake_up api does not need input parameter on Arm, > > + * so 0 is meaningless here. > > + */ > > + rte_power_monitor_wakeup(0); > > +#endif > > quit_signal = true; > > + } > > > > This method is problematic. There is no guarantee that power monitor is > async signal safe.
Agree with this. We will put 'rte_power_monitor_wakeup' out of signal_exit. And put it after that main_lcore exit 'main_empty_poll_loop': ----------------------------------------------------------------------------------------------------------------- rte_eal_mp_remote_launch(main_telemetry_loop, NULL, CALL_MAIN); %wake up all worker calls from low power state. rte_power_monitor_wakeup(0); if (app_mode == APP_MODE_EMPTY_POLL || app_mode == APP_MODE_TELEMETRY) launch_timer(rte_lcore_id()); RTE_LCORE_FOREACH_WORKER(lcore_id) { if (rte_eal_wait_lcore(lcore_id) < 0) return -1; } -----------------------------------------------------------------------------------------------------------------