[v1,1/1] examples/kni: fix SIGTERM signal handling

Message ID 20200204084214.18801-1-vattunuru@marvell.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series [v1,1/1] examples/kni: fix SIGTERM signal handling |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/travis-robot warning Travis build: failed
ci/iol-nxp-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/Intel-compilation fail apply issues

Commit Message

Vamsi Krishna Attunuru Feb. 4, 2020, 8:42 a.m. UTC
  From: Vamsi Attunuru <vattunuru@marvell.com>

Current KNI example application is not handling SIGTERM
signal when application is killed without passing any
specific signal in kill command.

Patch uses the existing signal handler for SIGTERM as well
for graceful application exit.

Fixes: 13c4ebd65a77 ("examples: minor changes")
Cc: stable@dpdk.org

Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
---
 examples/kni/main.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
  

Comments

Ferruh Yigit Feb. 4, 2020, 1:37 p.m. UTC | #1
On 2/4/2020 8:42 AM, vattunuru@marvell.com wrote:
> From: Vamsi Attunuru <vattunuru@marvell.com>
> 
> Current KNI example application is not handling SIGTERM
> signal when application is killed without passing any
> specific signal in kill command.
> 
> Patch uses the existing signal handler for SIGTERM as well
> for graceful application exit.
> 
> Fixes: 13c4ebd65a77 ("examples: minor changes")
> Cc: stable@dpdk.org

Hi Vamsi,

No concern adding SIGTERM handling, although you can use 'kill' to send
supported signal (or just C-c (SIGINT)), it doesn't hurt to handle SIGTERM too
but that is not a fix.

Can you please reword to commit log to say SIGTERM handling added? Feel free to
add my ack on to it.

> 
> Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
> ---
>  examples/kni/main.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/examples/kni/main.c b/examples/kni/main.c
> index 5f713e6..29fc37e 100644
> --- a/examples/kni/main.c
> +++ b/examples/kni/main.c
> @@ -176,9 +176,13 @@ signal_handler(int signum)
>  		return;
>  	}
>  
> -	/* When we receive a RTMIN or SIGINT signal, stop kni processing */
> -	if (signum == SIGRTMIN || signum == SIGINT){
> -		printf("\nSIGRTMIN/SIGINT received. KNI processing stopping.\n");
> +	/*
> +	 * When we receive a RTMIN or SIGINT or SIGTERM signal,
> +	 * stop kni processing
> +	 */
> +	if (signum == SIGRTMIN || signum == SIGINT || signum == SIGTERM) {
> +		printf("\nSIGRTMIN/SIGINT/SIGTERM received. "
> +			"KNI processing stopping.\n");
>  		rte_atomic32_inc(&kni_stop);
>  		return;
>          }
> @@ -1006,6 +1010,7 @@ main(int argc, char** argv)
>  	signal(SIGUSR2, signal_handler);
>  	signal(SIGRTMIN, signal_handler);
>  	signal(SIGINT, signal_handler);
> +	signal(SIGTERM, signal_handler);
>  
>  	/* Initialise EAL */
>  	ret = rte_eal_init(argc, argv);
>
  

Patch

diff --git a/examples/kni/main.c b/examples/kni/main.c
index 5f713e6..29fc37e 100644
--- a/examples/kni/main.c
+++ b/examples/kni/main.c
@@ -176,9 +176,13 @@  signal_handler(int signum)
 		return;
 	}
 
-	/* When we receive a RTMIN or SIGINT signal, stop kni processing */
-	if (signum == SIGRTMIN || signum == SIGINT){
-		printf("\nSIGRTMIN/SIGINT received. KNI processing stopping.\n");
+	/*
+	 * When we receive a RTMIN or SIGINT or SIGTERM signal,
+	 * stop kni processing
+	 */
+	if (signum == SIGRTMIN || signum == SIGINT || signum == SIGTERM) {
+		printf("\nSIGRTMIN/SIGINT/SIGTERM received. "
+			"KNI processing stopping.\n");
 		rte_atomic32_inc(&kni_stop);
 		return;
         }
@@ -1006,6 +1010,7 @@  main(int argc, char** argv)
 	signal(SIGUSR2, signal_handler);
 	signal(SIGRTMIN, signal_handler);
 	signal(SIGINT, signal_handler);
+	signal(SIGTERM, signal_handler);
 
 	/* Initialise EAL */
 	ret = rte_eal_init(argc, argv);