diff mbox series

[v1] Fix ltp-aiodio tests failing on s390

Message ID 20220519174151.14114-1-andrea.cervesato@suse.de
State Accepted
Headers show
Series [v1] Fix ltp-aiodio tests failing on s390 | expand

Commit Message

Andrea Cervesato May 19, 2022, 5:41 p.m. UTC
run_child flag is commonly used by aiodio tests in order to check if
tests are passed or not and compiler seems to optimize run_child flag
because it's not defined as volatile. With this patch we ensure that the
flag is set as volatile so tests will work as expected on s390.

Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.de>
---
 testcases/kernel/io/ltp-aiodio/aiodio_append.c | 4 ++--
 testcases/kernel/io/ltp-aiodio/aiodio_sparse.c | 4 ++--
 testcases/kernel/io/ltp-aiodio/dio_append.c    | 7 +++++--
 testcases/kernel/io/ltp-aiodio/dio_sparse.c    | 4 ++--
 testcases/kernel/io/ltp-aiodio/dio_truncate.c  | 4 ++--
 5 files changed, 13 insertions(+), 10 deletions(-)

Comments

Petr Vorel May 20, 2022, 7:30 a.m. UTC | #1
Hi Andrea,

> --- a/testcases/kernel/io/ltp-aiodio/dio_append.c
> +++ b/testcases/kernel/io/ltp-aiodio/dio_append.c
> @@ -19,7 +19,7 @@
>  #include "tst_test.h"
>  #include "common.h"

> -static int *run_child;
> +static volatile int *run_child;

>  static char *str_numchildren;
>  static char *str_writesize;
> @@ -49,7 +49,10 @@ static void setup(void)

>  static void cleanup(void)
>  {
> -	SAFE_MUNMAP(run_child, sizeof(int));
> +	if (run_child) {
> +		*run_child = 0;
> +		SAFE_MUNMAP((void *)run_child, sizeof(int));
> +	}
nit: This looks like unrelated, right? If yes it could be in separate commit.
But I'm ok to merge it in single commit.

Reviewed-by: Petr Vorel <pvorel@suse.cz>

Kind regards,
Petr
Andrea Cervesato May 20, 2022, 8:10 a.m. UTC | #2
Hi Petr,

that was missing from the previous implementation indeed. Something that was checked in the other tests, but not this one. Probably because it's also the older test we refactor in the aiodio testing suite. It seems related to the bug and the volatile variable, so I added it as well.

Andrea

On 5/20/22 09:30, Petr Vorel wrote:
> Hi Andrea,
>
>> --- a/testcases/kernel/io/ltp-aiodio/dio_append.c
>> +++ b/testcases/kernel/io/ltp-aiodio/dio_append.c
>> @@ -19,7 +19,7 @@
>>  #include "tst_test.h"
>>  #include "common.h"
>> -static int *run_child;
>> +static volatile int *run_child;
>>  static char *str_numchildren;
>>  static char *str_writesize;
>> @@ -49,7 +49,10 @@ static void setup(void)
>>  static void cleanup(void)
>>  {
>> -	SAFE_MUNMAP(run_child, sizeof(int));
>> +	if (run_child) {
>> +		*run_child = 0;
>> +		SAFE_MUNMAP((void *)run_child, sizeof(int));
>> +	}
> nit: This looks like unrelated, right? If yes it could be in separate commit.
> But I'm ok to merge it in single commit.
>
> Reviewed-by: Petr Vorel <pvorel@suse.cz>
>
> Kind regards,
> Petr
>
Cyril Hrubis May 20, 2022, 9:19 a.m. UTC | #3
Hi!
> run_child flag is commonly used by aiodio tests in order to check if
> tests are passed or not and compiler seems to optimize run_child flag
            ^
	    test has finished?

> because it's not defined as volatile. With this patch we ensure that the
> flag is set as volatile so tests will work as expected on s390.
> 
> Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.de>

The change itself looks fine and should go in before the release.

Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
Petr Vorel May 20, 2022, 12:01 p.m. UTC | #4
Hi all,

> Hi!
> > run_child flag is commonly used by aiodio tests in order to check if
> > tests are passed or not and compiler seems to optimize run_child flag
>             ^
> 	    test has finished?

> > because it's not defined as volatile. With this patch we ensure that the
> > flag is set as volatile so tests will work as expected on s390.

> > Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.de>

> The change itself looks fine and should go in before the release.

Merged with amended commit message. Thanks Andrea!

Kind regards,
Petr
diff mbox series

Patch

diff --git a/testcases/kernel/io/ltp-aiodio/aiodio_append.c b/testcases/kernel/io/ltp-aiodio/aiodio_append.c
index 46cc74ee4..e42c577cd 100644
--- a/testcases/kernel/io/ltp-aiodio/aiodio_append.c
+++ b/testcases/kernel/io/ltp-aiodio/aiodio_append.c
@@ -24,7 +24,7 @@ 
 #include <libaio.h>
 #include "common.h"
 
-static int *run_child;
+static volatile int *run_child;
 
 static char *str_numchildren;
 static char *str_writesize;
@@ -133,7 +133,7 @@  static void cleanup(void)
 {
 	if (run_child) {
 		*run_child = 0;
-		SAFE_MUNMAP(run_child, sizeof(int));
+		SAFE_MUNMAP((void *)run_child, sizeof(int));
 	}
 }
 
diff --git a/testcases/kernel/io/ltp-aiodio/aiodio_sparse.c b/testcases/kernel/io/ltp-aiodio/aiodio_sparse.c
index 2aa5662bb..9aa9b8d54 100644
--- a/testcases/kernel/io/ltp-aiodio/aiodio_sparse.c
+++ b/testcases/kernel/io/ltp-aiodio/aiodio_sparse.c
@@ -28,7 +28,7 @@ 
 #include <libaio.h>
 #include "common.h"
 
-static int *run_child;
+static volatile int *run_child;
 
 static char *str_numchildren;
 static char *str_writesize;
@@ -181,7 +181,7 @@  static void cleanup(void)
 {
 	if (run_child) {
 		*run_child = 0;
-		SAFE_MUNMAP(run_child, sizeof(int));
+		SAFE_MUNMAP((void *)run_child, sizeof(int));
 	}
 }
 
diff --git a/testcases/kernel/io/ltp-aiodio/dio_append.c b/testcases/kernel/io/ltp-aiodio/dio_append.c
index c099793f6..3a7e7c836 100644
--- a/testcases/kernel/io/ltp-aiodio/dio_append.c
+++ b/testcases/kernel/io/ltp-aiodio/dio_append.c
@@ -19,7 +19,7 @@ 
 #include "tst_test.h"
 #include "common.h"
 
-static int *run_child;
+static volatile int *run_child;
 
 static char *str_numchildren;
 static char *str_writesize;
@@ -49,7 +49,10 @@  static void setup(void)
 
 static void cleanup(void)
 {
-	SAFE_MUNMAP(run_child, sizeof(int));
+	if (run_child) {
+		*run_child = 0;
+		SAFE_MUNMAP((void *)run_child, sizeof(int));
+	}
 }
 
 static void run(void)
diff --git a/testcases/kernel/io/ltp-aiodio/dio_sparse.c b/testcases/kernel/io/ltp-aiodio/dio_sparse.c
index 0039daa8d..661afde4c 100644
--- a/testcases/kernel/io/ltp-aiodio/dio_sparse.c
+++ b/testcases/kernel/io/ltp-aiodio/dio_sparse.c
@@ -26,7 +26,7 @@ 
 #include "tst_test.h"
 #include "common.h"
 
-static int *run_child;
+static volatile int *run_child;
 
 static char *str_numchildren;
 static char *str_writesize;
@@ -85,7 +85,7 @@  static void cleanup(void)
 {
 	if (run_child) {
 		*run_child = 0;
-		SAFE_MUNMAP(run_child, sizeof(int));
+		SAFE_MUNMAP((void *)run_child, sizeof(int));
 	}
 }
 
diff --git a/testcases/kernel/io/ltp-aiodio/dio_truncate.c b/testcases/kernel/io/ltp-aiodio/dio_truncate.c
index 1fbf83de0..0fe6b87ac 100644
--- a/testcases/kernel/io/ltp-aiodio/dio_truncate.c
+++ b/testcases/kernel/io/ltp-aiodio/dio_truncate.c
@@ -33,7 +33,7 @@ 
 #include "tst_test.h"
 #include "common.h"
 
-static int *run_child;
+static volatile int *run_child;
 
 static char *str_numchildren;
 static char *str_filesize;
@@ -109,7 +109,7 @@  static void cleanup(void)
 {
 	if (run_child) {
 		*run_child = 0;
-		SAFE_MUNMAP(run_child, sizeof(int));
+		SAFE_MUNMAP((void *)run_child, sizeof(int));
 	}
 }