Message ID | 20240129101448.14463-1-andrea.cervesato@suse.de |
---|---|
State | Superseded |
Headers | show |
Series | [v1] Fix synchronization problem with dio tests | expand |
Hi Andrea, > When system is really fast processing I/O syscalls, multiple childrean > running I/O operations might lock the parent, causing > tst_reap_childrean() to stuck. By adding a small usleep at the > end of the reading I/O operations, which are used by dio_append and > dio_read tests, we ensure that system has enough breath to end tests > correctly and to process children exit. Thanks for fixing this! Test already does some usleep(100). For a record, this triggered a failure on s39Ox on SLE 15-SP6. Reviewed-by: Petr Vorel <pvorel@suse.cz> Kind regards, Petr
Hi! > When system is really fast processing I/O syscalls, multiple childrean > running I/O operations might lock the parent, causing > tst_reap_childrean() to stuck. By adding a small usleep at the > end of the reading I/O operations, which are used by dio_append and > dio_read tests, we ensure that system has enough breath to end tests > correctly and to process children exit. This does smell like a kernel bug to be honest. Which test is this? How to reproduce? > Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com> > --- > testcases/kernel/io/ltp-aiodio/common.h | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/testcases/kernel/io/ltp-aiodio/common.h b/testcases/kernel/io/ltp-aiodio/common.h > index 200bbe18e..281072c3b 100644 > --- a/testcases/kernel/io/ltp-aiodio/common.h > +++ b/testcases/kernel/io/ltp-aiodio/common.h > @@ -90,6 +90,8 @@ static inline void io_read(const char *filename, int filesize, volatile int *run > if (!*run_child || !tst_remaining_runtime()) > goto exit; > } > + > + usleep(100); > } > > exit: > @@ -121,6 +123,8 @@ static inline void io_read_eof(const char *filename, volatile int *run_child) > break; > } > } > + > + usleep(100); > } > > SAFE_CLOSE(fd); > -- > 2.35.3 > > > -- > Mailing list info: https://lists.linux.it/listinfo/ltp
Hi! On 1/29/24 16:01, Cyril Hrubis wrote: > Hi! >> When system is really fast processing I/O syscalls, multiple childrean >> running I/O operations might lock the parent, causing >> tst_reap_childrean() to stuck. By adding a small usleep at the >> end of the reading I/O operations, which are used by dio_append and >> dio_read tests, we ensure that system has enough breath to end tests >> correctly and to process children exit. > This does smell like a kernel bug to be honest. I thought the same at first, but I didn't find issues in the kernel. We can take a look deeper for sure. > Which test is this? How to reproduce? > >> Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com> >> --- >> testcases/kernel/io/ltp-aiodio/common.h | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/testcases/kernel/io/ltp-aiodio/common.h b/testcases/kernel/io/ltp-aiodio/common.h >> index 200bbe18e..281072c3b 100644 >> --- a/testcases/kernel/io/ltp-aiodio/common.h >> +++ b/testcases/kernel/io/ltp-aiodio/common.h >> @@ -90,6 +90,8 @@ static inline void io_read(const char *filename, int filesize, volatile int *run >> if (!*run_child || !tst_remaining_runtime()) >> goto exit; >> } >> + >> + usleep(100); >> } >> >> exit: >> @@ -121,6 +123,8 @@ static inline void io_read_eof(const char *filename, volatile int *run_child) >> break; >> } >> } >> + >> + usleep(100); >> } >> >> SAFE_CLOSE(fd); >> -- >> 2.35.3 >> >> >> -- >> Mailing list info: https://lists.linux.it/listinfo/ltp Andrea
> Hi! > On 1/29/24 16:01, Cyril Hrubis wrote: > > Hi! > > > When system is really fast processing I/O syscalls, multiple childrean > > > running I/O operations might lock the parent, causing > > > tst_reap_childrean() to stuck. By adding a small usleep at the > > > end of the reading I/O operations, which are used by dio_append and > > > dio_read tests, we ensure that system has enough breath to end tests > > > correctly and to process children exit. > > This does smell like a kernel bug to be honest. > I thought the same at first, but I didn't find issues in the kernel. We can > take a look deeper for sure. > > Which test is this? How to reproduce? FYI It's ADI000 => dio_append (without params), which is failing on s39Ox on SLE 15-SP6. It runs pretty quickly on other common archs. Kind regards, Petr
diff --git a/testcases/kernel/io/ltp-aiodio/common.h b/testcases/kernel/io/ltp-aiodio/common.h index 200bbe18e..281072c3b 100644 --- a/testcases/kernel/io/ltp-aiodio/common.h +++ b/testcases/kernel/io/ltp-aiodio/common.h @@ -90,6 +90,8 @@ static inline void io_read(const char *filename, int filesize, volatile int *run if (!*run_child || !tst_remaining_runtime()) goto exit; } + + usleep(100); } exit: @@ -121,6 +123,8 @@ static inline void io_read_eof(const char *filename, volatile int *run_child) break; } } + + usleep(100); } SAFE_CLOSE(fd);