examples/l3fwd-power: fix ctrl+c issue
Checks
Commit Message
Currently, EAL init cannot be interrupted with SIGINT because the
signal handler is already overridden by the time EAL init happens.
Fix it by moving signal handler installation to after EAL
initialization, to allow SIGNIT to interrupt EAL initialization.
Fixes: d7937e2e3d12 ("power: initial import")
Cc: stable@dpdk.org
Signed-off-by: Harneet Singh <harneet.singh@intel.com>
Comments
On 29-Oct-21 3:05 PM, Harneet Singh wrote:
> Currently, EAL init cannot be interrupted with SIGINT because the
> signal handler is already overridden by the time EAL init happens.
>
> Fix it by moving signal handler installation to after EAL
> initialization, to allow SIGNIT to interrupt EAL initialization.
>
> Fixes: d7937e2e3d12 ("power: initial import")
> Cc: stable@dpdk.org
>
> Signed-off-by: Harneet Singh <harneet.singh@intel.com>
>
> diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
> index 21c79567b1..002ba011c3 100644
> --- a/examples/l3fwd-power/main.c
> +++ b/examples/l3fwd-power/main.c
> @@ -2532,9 +2532,6 @@ main(int argc, char **argv)
> uint16_t portid;
> const char *ptr_strings[NUM_TELSTATS];
>
> - /* catch SIGINT and restore cpufreq governor to ondemand */
> - signal(SIGINT, signal_exit_now);
> -
> /* init EAL */
> ret = rte_eal_init(argc, argv);
> if (ret < 0)
> @@ -2542,6 +2539,9 @@ main(int argc, char **argv)
> argc -= ret;
> argv += ret;
>
> + /* catch SIGINT and restore cpufreq governor to ondemand */
> + signal(SIGINT, signal_exit_now);
> +
> /* init RTE timer library to be used late */
> rte_timer_subsystem_init();
>
>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
On Fri, Oct 29, 2021 at 5:50 PM Burakov, Anatoly
<anatoly.burakov@intel.com> wrote:
> On 29-Oct-21 3:05 PM, Harneet Singh wrote:
> > Currently, EAL init cannot be interrupted with SIGINT because the
> > signal handler is already overridden by the time EAL init happens.
> >
> > Fix it by moving signal handler installation to after EAL
> > initialization, to allow SIGNIT to interrupt EAL initialization.
> >
> > Fixes: d7937e2e3d12 ("power: initial import")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Harneet Singh <harneet.singh@intel.com>
> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Applied, thanks.
@@ -2532,9 +2532,6 @@ main(int argc, char **argv)
uint16_t portid;
const char *ptr_strings[NUM_TELSTATS];
- /* catch SIGINT and restore cpufreq governor to ondemand */
- signal(SIGINT, signal_exit_now);
-
/* init EAL */
ret = rte_eal_init(argc, argv);
if (ret < 0)
@@ -2542,6 +2539,9 @@ main(int argc, char **argv)
argc -= ret;
argv += ret;
+ /* catch SIGINT and restore cpufreq governor to ondemand */
+ signal(SIGINT, signal_exit_now);
+
/* init RTE timer library to be used late */
rte_timer_subsystem_init();