diff mbox series

[1/1] aiodio: Skip tests on tmpfs

Message ID 20220121100604.1072-1-pvorel@suse.cz
State Superseded
Headers show
Series [1/1] aiodio: Skip tests on tmpfs | expand

Commit Message

Petr Vorel Jan. 21, 2022, 10:06 a.m. UTC
tmpfs does not support it.

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
 testcases/kernel/io/ltp-aiodio/aiodio_append.c | 10 ++++++++--
 testcases/kernel/io/ltp-aiodio/dio_append.c    |  4 ++++
 testcases/kernel/io/ltp-aiodio/dio_read.c      |  4 ++++
 testcases/kernel/io/ltp-aiodio/dio_sparse.c    | 10 ++++++++--
 testcases/kernel/io/ltp-aiodio/dio_truncate.c  | 10 ++++++++--
 5 files changed, 32 insertions(+), 6 deletions(-)

Comments

Petr Vorel Jan. 21, 2022, 10:16 a.m. UTC | #1
Hi all,

[Cc Li ]

> tmpfs does not support it.
Verifying with .all_filesystems, that only tmpfs is problematic
- tested on exfat, ntfs over FUSE, vfat (common linux filesystems obviously work)

That's why I avoided opening file with O_DIRECT in setup().

BTW I wonder what is the reason of duplicate entries in ltp-aiodio.part4?
i.e. dio_sparse, aiodio_append, dio_append, dio_truncate...
To create bigger load?

IMHO it'd make sense to run at least one test on .all_filesystems to check more
filesystems (dio_append seems to be quick), but I wouldn't done it when there
are duplicate entries.

Kind regards,
Petr
Andrea Cervesato Jan. 21, 2022, 10:32 a.m. UTC | #2
Hi!

On 1/21/22 11:06, Petr Vorel wrote:
> tmpfs does not support it.
>
> Signed-off-by: Petr Vorel<pvorel@suse.cz>
> ---
>   testcases/kernel/io/ltp-aiodio/aiodio_append.c | 10 ++++++++--
>   testcases/kernel/io/ltp-aiodio/dio_append.c    |  4 ++++
>   testcases/kernel/io/ltp-aiodio/dio_read.c      |  4 ++++
>   testcases/kernel/io/ltp-aiodio/dio_sparse.c    | 10 ++++++++--
>   testcases/kernel/io/ltp-aiodio/dio_truncate.c  | 10 ++++++++--
>   5 files changed, 32 insertions(+), 6 deletions(-)
>
> diff --git a/testcases/kernel/io/ltp-aiodio/aiodio_append.c b/testcases/kernel/io/ltp-aiodio/aiodio_append.c
> index cb04b04a57..46cc74ee4e 100644
> --- a/testcases/kernel/io/ltp-aiodio/aiodio_append.c
> +++ b/testcases/kernel/io/ltp-aiodio/aiodio_append.c
> @@ -131,8 +131,10 @@ static void setup(void)
>   
>   static void cleanup(void)
>   {
> -	*run_child = 0;
> -	SAFE_MUNMAP(run_child, sizeof(int));
> +	if (run_child) {
> +		*run_child = 0;
> +		SAFE_MUNMAP(run_child, sizeof(int));

SAFE_MUNMAP should be called always, even if *run_child == 0 (which happens if run() completed successfully).

> +	}
>   }
>   
>   static void run(void)
> @@ -177,6 +179,10 @@ static struct tst_test test = {
>   		{"b:", &str_numaio, "Number of async IO blocks (default 16)"},
>   		{}
>   	},
> +	.skip_filesystems = (const char *[]) {
> +		"tmpfs",
> +		NULL
> +	},
>   };
>   #else
>   TST_TEST_TCONF("test requires libaio and its development packages");
> diff --git a/testcases/kernel/io/ltp-aiodio/dio_append.c b/testcases/kernel/io/ltp-aiodio/dio_append.c
> index 59fd710e70..c099793f6c 100644
> --- a/testcases/kernel/io/ltp-aiodio/dio_append.c
> +++ b/testcases/kernel/io/ltp-aiodio/dio_append.c
> @@ -93,4 +93,8 @@ static struct tst_test test = {
>   		{"c:", &str_appends, "Number of appends (default 1000)"},
>   		{}
>   	},
> +	.skip_filesystems = (const char *[]) {
> +		"tmpfs",
> +		NULL
> +	},
>   };
> diff --git a/testcases/kernel/io/ltp-aiodio/dio_read.c b/testcases/kernel/io/ltp-aiodio/dio_read.c
> index 2c2ec4bce0..67a28147fd 100644
> --- a/testcases/kernel/io/ltp-aiodio/dio_read.c
> +++ b/testcases/kernel/io/ltp-aiodio/dio_read.c
> @@ -177,4 +177,8 @@ static struct tst_test test = {
>   		{"s:", &str_filesize, "File size (default 128M)"},
>   		{}
>   	},
> +	.skip_filesystems = (const char *[]) {
> +		"tmpfs",
> +		NULL
> +	},
>   };
> diff --git a/testcases/kernel/io/ltp-aiodio/dio_sparse.c b/testcases/kernel/io/ltp-aiodio/dio_sparse.c
> index 4ee2fbab18..39fc895d65 100644
> --- a/testcases/kernel/io/ltp-aiodio/dio_sparse.c
> +++ b/testcases/kernel/io/ltp-aiodio/dio_sparse.c
> @@ -83,8 +83,10 @@ static void setup(void)
>   
>   static void cleanup(void)
>   {
> -	*run_child = 0;
> -	SAFE_MUNMAP(run_child, sizeof(int));
> +	if (run_child) {
> +		*run_child = 0;
> +		SAFE_MUNMAP(run_child, sizeof(int));
> +	}
>   }
>   
>   static void run(void)
> @@ -129,4 +131,8 @@ static struct tst_test test = {
>   		{"o:", &str_offset, "File offset (default 0)"},
>   		{}
>   	},
> +	.skip_filesystems = (const char *[]) {
> +		"tmpfs",
> +		NULL
> +	},
>   };
> diff --git a/testcases/kernel/io/ltp-aiodio/dio_truncate.c b/testcases/kernel/io/ltp-aiodio/dio_truncate.c
> index 4bf11c9588..1fbf83de06 100644
> --- a/testcases/kernel/io/ltp-aiodio/dio_truncate.c
> +++ b/testcases/kernel/io/ltp-aiodio/dio_truncate.c
> @@ -107,8 +107,10 @@ static void setup(void)
>   
>   static void cleanup(void)
>   {
> -	*run_child = 0;
> -	SAFE_MUNMAP(run_child, sizeof(int));
> +	if (run_child) {
> +		*run_child = 0;
> +		SAFE_MUNMAP(run_child, sizeof(int));
> +	}
>   }
>   
>   static void run(void)
> @@ -163,4 +165,8 @@ static struct tst_test test = {
>   		{"c:", &str_numwrites, "Number of append & truncate (default 100)"},
>   		{}
>   	},
> +	.skip_filesystems = (const char *[]) {
> +		"tmpfs",
> +		NULL
> +	},
>   };

Kind regards,

Andrea
Cyril Hrubis Jan. 21, 2022, 10:36 a.m. UTC | #3
Hi!
> SAFE_MUNMAP should be called always, even if *run_child == 0 (which happens if run() completed successfully).

This is actually if (run_child) not if (*run_child) and it fixes the
case where the test is skipped even before the run_child has been
mmaped.
Cyril Hrubis Jan. 21, 2022, 10:37 a.m. UTC | #4
Hi!
> > tmpfs does not support it.
> Verifying with .all_filesystems, that only tmpfs is problematic
> - tested on exfat, ntfs over FUSE, vfat (common linux filesystems obviously work)
> 
> That's why I avoided opening file with O_DIRECT in setup().
> 
> BTW I wonder what is the reason of duplicate entries in ltp-aiodio.part4?
> i.e. dio_sparse, aiodio_append, dio_append, dio_truncate...
> To create bigger load?
> 
> IMHO it'd make sense to run at least one test on .all_filesystems to check more
> filesystems (dio_append seems to be quick), but I wouldn't done it when there
> are duplicate entries.

Historicall mess I guess. We will clean that up in the next development
cycle.
Petr Vorel Jan. 21, 2022, 10:38 a.m. UTC | #5
> Hi!
> > SAFE_MUNMAP should be called always, even if *run_child == 0 (which happens if run() completed successfully).

> This is actually if (run_child) not if (*run_child) and it fixes the
> case where the test is skipped even before the run_child has been
> mmaped.
Yes, that's needed for tmpfs.

Kind regards,
Petr
Cyril Hrubis Jan. 21, 2022, 10:42 a.m. UTC | #6
Hi!
Looks good to me, but since we are right before release I would be more
happier if this gets more than one review before it gets pushed.

Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
Petr Vorel Jan. 21, 2022, 10:43 a.m. UTC | #7
> Hi!
> Looks good to me, but since we are right before release I would be more
> happier if this gets more than one review before it gets pushed.
Definitely. Li, Andrea, Martin, could you please have a look?

Kind regards,
Petr

> Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
Andrea Cervesato Jan. 21, 2022, 11:12 a.m. UTC | #8
Hi!

On 1/21/22 11:16, Petr Vorel wrote:
> Hi all,
>
> [Cc Li ]
>
>> tmpfs does not support it.
> Verifying with .all_filesystems, that only tmpfs is problematic
> - tested on exfat, ntfs over FUSE, vfat (common linux filesystems obviously work)
>
> That's why I avoided opening file with O_DIRECT in setup().
>
> BTW I wonder what is the reason of duplicate entries in ltp-aiodio.part4?
> i.e. dio_sparse, aiodio_append, dio_append, dio_truncate...
> To create bigger load?

To duplicate entries in ltp-aiodio.part4 doesn't make much sense and I 
perfectly agree with you. Once the aiodio testing suite is finished, we 
do need to change runtest file in order to have multiple scenarios with 
different files/buffers size with a different number of sub-processes.

>
> IMHO it'd make sense to run at least one test on .all_filesystems to check more
> filesystems (dio_append seems to be quick), but I wouldn't done it when there
> are duplicate entries.
>
> Kind regards,
> Petr
>
Andrea Cervesato Jan. 21, 2022, 11:22 a.m. UTC | #9
It makes sense to avoid running tests using O_DIRECT on tmpfs, so patch 
looks good to me.

On 1/21/22 11:43, Petr Vorel wrote:
>> Hi!
>> Looks good to me, but since we are right before release I would be more
>> happier if this gets more than one review before it gets pushed.
> Definitely. Li, Andrea, Martin, could you please have a look?
>
> Kind regards,
> Petr
>
>> Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

Kind regards,

Andrea
Martin Doucha Jan. 21, 2022, 11:48 a.m. UTC | #10
Hi,
one tiny nit below, otherwise:

Reviewed-by: Martin Doucha <mdoucha@suse.cz>

On 21. 01. 22 11:06, Petr Vorel wrote:
> tmpfs does not support it.

What's "it"? ^

> 
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
>  testcases/kernel/io/ltp-aiodio/aiodio_append.c | 10 ++++++++--
>  testcases/kernel/io/ltp-aiodio/dio_append.c    |  4 ++++
>  testcases/kernel/io/ltp-aiodio/dio_read.c      |  4 ++++
>  testcases/kernel/io/ltp-aiodio/dio_sparse.c    | 10 ++++++++--
>  testcases/kernel/io/ltp-aiodio/dio_truncate.c  | 10 ++++++++--
>  5 files changed, 32 insertions(+), 6 deletions(-)
> 
> diff --git a/testcases/kernel/io/ltp-aiodio/aiodio_append.c b/testcases/kernel/io/ltp-aiodio/aiodio_append.c
Cyril Hrubis Jan. 21, 2022, 11:56 a.m. UTC | #11
Hi!
> > tmpfs does not support it.
> 
> What's "it"? ^

Should be replaced by O_DIRECT I guess.
Petr Vorel Jan. 21, 2022, 1:26 p.m. UTC | #12
Hi Martin,

> Hi,
> one tiny nit below, otherwise:

> Reviewed-by: Martin Doucha <mdoucha@suse.cz>
Thanks!

> On 21. 01. 22 11:06, Petr Vorel wrote:
> > tmpfs does not support it.

> What's "it"? ^
+1, I'll add O_DIRECT.

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 cb04b04a57..46cc74ee4e 100644
--- a/testcases/kernel/io/ltp-aiodio/aiodio_append.c
+++ b/testcases/kernel/io/ltp-aiodio/aiodio_append.c
@@ -131,8 +131,10 @@  static void setup(void)
 
 static void cleanup(void)
 {
-	*run_child = 0;
-	SAFE_MUNMAP(run_child, sizeof(int));
+	if (run_child) {
+		*run_child = 0;
+		SAFE_MUNMAP(run_child, sizeof(int));
+	}
 }
 
 static void run(void)
@@ -177,6 +179,10 @@  static struct tst_test test = {
 		{"b:", &str_numaio, "Number of async IO blocks (default 16)"},
 		{}
 	},
+	.skip_filesystems = (const char *[]) {
+		"tmpfs",
+		NULL
+	},
 };
 #else
 TST_TEST_TCONF("test requires libaio and its development packages");
diff --git a/testcases/kernel/io/ltp-aiodio/dio_append.c b/testcases/kernel/io/ltp-aiodio/dio_append.c
index 59fd710e70..c099793f6c 100644
--- a/testcases/kernel/io/ltp-aiodio/dio_append.c
+++ b/testcases/kernel/io/ltp-aiodio/dio_append.c
@@ -93,4 +93,8 @@  static struct tst_test test = {
 		{"c:", &str_appends, "Number of appends (default 1000)"},
 		{}
 	},
+	.skip_filesystems = (const char *[]) {
+		"tmpfs",
+		NULL
+	},
 };
diff --git a/testcases/kernel/io/ltp-aiodio/dio_read.c b/testcases/kernel/io/ltp-aiodio/dio_read.c
index 2c2ec4bce0..67a28147fd 100644
--- a/testcases/kernel/io/ltp-aiodio/dio_read.c
+++ b/testcases/kernel/io/ltp-aiodio/dio_read.c
@@ -177,4 +177,8 @@  static struct tst_test test = {
 		{"s:", &str_filesize, "File size (default 128M)"},
 		{}
 	},
+	.skip_filesystems = (const char *[]) {
+		"tmpfs",
+		NULL
+	},
 };
diff --git a/testcases/kernel/io/ltp-aiodio/dio_sparse.c b/testcases/kernel/io/ltp-aiodio/dio_sparse.c
index 4ee2fbab18..39fc895d65 100644
--- a/testcases/kernel/io/ltp-aiodio/dio_sparse.c
+++ b/testcases/kernel/io/ltp-aiodio/dio_sparse.c
@@ -83,8 +83,10 @@  static void setup(void)
 
 static void cleanup(void)
 {
-	*run_child = 0;
-	SAFE_MUNMAP(run_child, sizeof(int));
+	if (run_child) {
+		*run_child = 0;
+		SAFE_MUNMAP(run_child, sizeof(int));
+	}
 }
 
 static void run(void)
@@ -129,4 +131,8 @@  static struct tst_test test = {
 		{"o:", &str_offset, "File offset (default 0)"},
 		{}
 	},
+	.skip_filesystems = (const char *[]) {
+		"tmpfs",
+		NULL
+	},
 };
diff --git a/testcases/kernel/io/ltp-aiodio/dio_truncate.c b/testcases/kernel/io/ltp-aiodio/dio_truncate.c
index 4bf11c9588..1fbf83de06 100644
--- a/testcases/kernel/io/ltp-aiodio/dio_truncate.c
+++ b/testcases/kernel/io/ltp-aiodio/dio_truncate.c
@@ -107,8 +107,10 @@  static void setup(void)
 
 static void cleanup(void)
 {
-	*run_child = 0;
-	SAFE_MUNMAP(run_child, sizeof(int));
+	if (run_child) {
+		*run_child = 0;
+		SAFE_MUNMAP(run_child, sizeof(int));
+	}
 }
 
 static void run(void)
@@ -163,4 +165,8 @@  static struct tst_test test = {
 		{"c:", &str_numwrites, "Number of append & truncate (default 100)"},
 		{}
 	},
+	.skip_filesystems = (const char *[]) {
+		"tmpfs",
+		NULL
+	},
 };