[patch, fortran] PR25829 Asynchronous I/O (patch version 2.0)

Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
Mon Jun 18 12:29:00 GMT 2018


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



More information about the Gcc-patches mailing list