[dpdk-dev] [PATCH v5] app/pdump: add pudmp exits with primary support.

Burakov, Anatoly anatoly.burakov at intel.com
Tue Apr 30 11:42:12 CEST 2019


On 30-Apr-19 12:35 PM, Suanming.Mou wrote:
> When primary app exits, the residual running pdump will stop the
> primary app to restart. Add pdump exits with primary support.
> 
> Suggested-by: Varghese, Vipin <vipin.varghese at intel.com>
> Suggested-by: Burakov, Anatoly <anatoly.burakov at intel.com>
> Signed-off-by: Suanming.Mou <mousuanming at huawei.com>
> ---

<snip>

>   static void
> +disable_primary_monitor(void)
> +{
> +	int ret;
> +
> +	/* Don't worry about it is primary exit case. The alarm cancel
> +	 * function will take care about that. */
> +	ret = rte_eal_alarm_cancel(monitor_primary, NULL);
> +	if (ret < 0)
> +		printf("Fail to disable monitor fail:%d\n", ret);

Double fail :)

> +}
> +
> +static void
>   signal_handler(int sig_num)
>   {
>   	if (sig_num == SIGINT) {
> @@ -910,6 +936,19 @@ struct parse_val {
>   		;
>   }
>   
> +static void
> +enable_primary_monitor(void)
> +{
> +	int ret;
> +
> +	/* Once primary exits, so will pdump. */
> +	ret = rte_eal_alarm_set(MONITOR_INTERVAL, monitor_primary, NULL);
> +	if (ret < 0) {
> +		cleanup_pdump_resources();
> +		rte_exit(EXIT_FAILURE, "Fail to monitor primary:%d\n", ret);
> +	}

Why is this function void, when you could've called rte_exit() in the 
caller on failure? And why is it such a fatal error to set up the timer? 
IMO just a warning would've been enough.

> +}
> +
>   int
>   main(int argc, char **argv)
>   {
> @@ -950,11 +989,13 @@ struct parse_val {
>   			rte_exit(EXIT_FAILURE, "Invalid argument\n");
>   	}
>   
> -	/* create mempool, ring and vdevs info */
> +	/* create mempool, ring, vdevs info and primary monitor */
>   	create_mp_ring_vdev();
>   	enable_pdump();
> +	enable_primary_monitor();
>   	dump_packets();
>   
> +	disable_primary_monitor();
>   	cleanup_pdump_resources();
>   	/* dump debug stats */
>   	print_pdump_stats();
> 


-- 
Thanks,
Anatoly


More information about the dev mailing list