[v2] testpmd: make f_quit flag volatile
Checks
Commit Message
Since f_quit is set in a signal handler it needs to be marked
volatile. Otherwise, compiler is allowed to optimize the loop because
it can assume the value never changes. The flag can also be made local
to the file it is used in.
Fixes: d9a191a00e81 ("app/testpmd: fix quitting in container")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
v2 - not RFC and add fixes line
app/test-pmd/testpmd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Wednesday, November 9, 2022 2:08 AM
> To: dev@dpdk.org
> Cc: Phil Yang <Phil.Yang@arm.com>; Stephen Hemminger <stephen@networkplumber.org>
> Subject: [PATCH v2] testpmd: make f_quit flag volatile
>
> Since f_quit is set in a signal handler it needs to be marked volatile. Otherwise,
> compiler is allowed to optimize the loop because it can assume the value never changes.
> The flag can also be made local to the file it is used in.
>
> Fixes: d9a191a00e81 ("app/testpmd: fix quitting in container")
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
> v2 - not RFC and add fixes line
>
> app/test-pmd/testpmd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> aa7ea29f15ba..cf5942d0c422 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -231,7 +231,7 @@ unsigned int xstats_display_num; /**< Size of extended statistics to
> show */
> * In container, it cannot terminate the process which running with 'stats-period'
> * option. Set flag to exit stats period loop after received SIGINT/SIGTERM.
> */
> -uint8_t f_quit;
> +static volatile uint8_t f_quit;
> uint8_t cl_quit; /* Quit testpmd from cmdline. */
>
> /*
> --
> 2.35.1
Thanks for the change.
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
On 11/9/22 13:11, Ruifeng Wang wrote:
>> -----Original Message-----
>> From: Stephen Hemminger <stephen@networkplumber.org>
>> Sent: Wednesday, November 9, 2022 2:08 AM
>> To: dev@dpdk.org
>> Cc: Phil Yang <Phil.Yang@arm.com>; Stephen Hemminger <stephen@networkplumber.org>
>> Subject: [PATCH v2] testpmd: make f_quit flag volatile
>>
>> Since f_quit is set in a signal handler it needs to be marked volatile. Otherwise,
>> compiler is allowed to optimize the loop because it can assume the value never changes.
>> The flag can also be made local to the file it is used in.
>>
>> Fixes: d9a191a00e81 ("app/testpmd: fix quitting in container")
>> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
>> ---
>> v2 - not RFC and add fixes line
>>
>> app/test-pmd/testpmd.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
>> aa7ea29f15ba..cf5942d0c422 100644
>> --- a/app/test-pmd/testpmd.c
>> +++ b/app/test-pmd/testpmd.c
>> @@ -231,7 +231,7 @@ unsigned int xstats_display_num; /**< Size of extended statistics to
>> show */
>> * In container, it cannot terminate the process which running with 'stats-period'
>> * option. Set flag to exit stats period loop after received SIGINT/SIGTERM.
>> */
>> -uint8_t f_quit;
>> +static volatile uint8_t f_quit;
>> uint8_t cl_quit; /* Quit testpmd from cmdline. */
>>
>> /*
>> --
>> 2.35.1
> Thanks for the change.
> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
>
Applied to dpdk-next-net/main, thanks.
@@ -231,7 +231,7 @@ unsigned int xstats_display_num; /**< Size of extended statistics to show */
* In container, it cannot terminate the process which running with 'stats-period'
* option. Set flag to exit stats period loop after received SIGINT/SIGTERM.
*/
-uint8_t f_quit;
+static volatile uint8_t f_quit;
uint8_t cl_quit; /* Quit testpmd from cmdline. */
/*