Hi Nicolas,
> Here is the next version of the async I/O patch. It adds the documentation,
> renames the testcases, uses "gthr.h", follows the style guidelines and has
> been regression tested cleanly.
>
> As for adding additional flags, I think it would be better to follow ifort
> to minimize complexity.
>
> The benchmark (not for the test suite) should also run on systems with
> small stack sizes.
I didn't look at the code this time, just bootstrapped with the patch
included on i386-pc-solaris2.11 and sparc-sun-solaris2.11. There are
still problems:
+FAIL: gfortran.dg/f2003_io_1.f03 -O0 execution test
+FAIL: gfortran.dg/f2003_io_1.f03 -O1 execution test
+FAIL: gfortran.dg/f2003_io_1.f03 -O2 execution test
+FAIL: gfortran.dg/f2003_io_1.f03 -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions execution test
+FAIL: gfortran.dg/f2003_io_1.f03 -O3 -g execution test
+FAIL: gfortran.dg/f2003_io_1.f03 -Os execution test
on both 32 and 64-bit sparc and x86. The test always fails with
STOP 3
FAIL: libgomp.fortran/async_io_1.f90 -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions execution test
on 64-bit Solaris/x86 only (STOP 2).
Also on 32-bit Solaris/x86, I had an instance of f2003_inquire_1.exe
hang for 1 1/2 hours, although it should have been aborted by runtest
after the usual 300 s timeout:
+FAIL: gfortran.dg/f2003_inquire_1.f03 -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions execution test
+WARNING: program timed out.
Looks like a deadlock:
4036: ./f2003_inquire_1.exe
------------ lwp# 1 / thread# 1 ---------------
fd9b9db9 lwp_park (0, 0, 0)
fd9b2f05 cond_wait_queue (80656a0, 8065688, 0, fd9b3433) + 60
fd9b34b4 __cond_wait (80656a0, 8065688, feff4e58, fd9b34f6) + 8f
fd9b3504 cond_wait (80656a0, 8065688, feff4eb8, fd9b3534) + 24
fd9b3549 pthread_cond_wait (80656a0, 8065688, 583e6a5, fd9a4655) + 21
fddf3355 _gfortrani_async_wait (feff4fac, 8065640, feff4f2f, feff4fac) + 125
fddd0e38 _gfortran_st_close (feff4fac, feff4f61, 5, 8050f0b, feff50a8,
feff5050) + 58
080514db MAIN__ (20202020, 20202020, 20202020, 20202020, 4f525020, 53534543)
+ 2cb
20202038 ???????? ()
------------ lwp# 2 / thread# 2 ---------------
fd9b9db9 lwp_park (0, 0, 0)
fd9b2f05 cond_wait_queue (8065674, 806565c, 0, fd9b3433) + 60
fd9b34b4 __cond_wait (8065674, 806565c, fd7fef38, fd9b34f6) + 8f
fd9b3504 cond_wait (8065674, 806565c, fd7fef58, fd9b3534) + 24
fd9b3549 pthread_cond_wait (8065674, 806565c, fd7fefa8, fddf0d96) + 21
fddf131d async_io (80631d0, fda08000, fd7fefc8, fd9b9a27) + 5cd (async.c:102)
fd9b9a79 _thrp_setup (fdab0240) + 99
fd9b9d60 _lwp_start (0, 0, 0, 0, 0, 0)
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University