Commit 88fbe180 authored by Rob Latham's avatar Rob Latham
Browse files

check for aio-lite request/presence



if we use this aio-lite implementation of aio routines, the MPICH test
suites all pass.
Signed-off-by: Sangmin Seo's avatarSangmin Seo <sseo@anl.gov>
parent b3684399
...@@ -24,7 +24,9 @@ ...@@ -24,7 +24,9 @@
#ifdef HAVE_SIGNAL_H #ifdef HAVE_SIGNAL_H
#include <signal.h> #include <signal.h>
#endif #endif
#ifdef HAVE_AIO_H #ifdef HAVE_AIO_LITE_H
#include <aio-lite.h>
#elif defined HAVE_AIO_H
#include <aio.h> #include <aio.h>
#endif #endif
......
...@@ -35,12 +35,16 @@ ...@@ -35,12 +35,16 @@
#include <signal.h> #include <signal.h>
#endif #endif
#ifdef HAVE_AIO_H #ifdef HAVE_AIO_LITE_H
#include <aio.h> #include <aio-lite.h>
#ifdef HAVE_SYS_AIO_H #else
#include <sys/aio.h> #ifdef HAVE_AIO_H
#endif #include <aio.h>
#endif /* End of HAVE_SYS_AIO_H */ #endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#endif
#endif /* End of HAVE_AIO_LITE_H */
void ADIOI_LUSTRE_Open(ADIO_File fd, int *error_code); void ADIOI_LUSTRE_Open(ADIO_File fd, int *error_code);
void ADIOI_LUSTRE_Close(ADIO_File fd, int *error_code); void ADIOI_LUSTRE_Close(ADIO_File fd, int *error_code);
......
...@@ -18,11 +18,15 @@ ...@@ -18,11 +18,15 @@
#ifdef HAVE_SYS_TYPES_H #ifdef HAVE_SYS_TYPES_H
#include <sys/types.h> #include <sys/types.h>
#endif #endif
#ifdef HAVE_AIO_H #ifdef HAVE_AIO_LITE_H
#include <aio.h> #include <aio-lite.h>
#endif #else
#ifdef HAVE_SYS_AIO_H #ifdef HAVE_AIO_H
#include <sys/aio.h> #include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#endif
#endif #endif
/* Workaround for incomplete set of definitions if __REDIRECT is not /* Workaround for incomplete set of definitions if __REDIRECT is not
......
...@@ -15,14 +15,20 @@ ...@@ -15,14 +15,20 @@
#include "adio.h" #include "adio.h"
#ifndef NO_AIO #ifndef NO_AIO
#ifdef AIO_SUN # ifdef AIO_SUN
#include <sys/asynch.h> # include <sys/asynch.h>
#else # else
#include <aio.h> #ifdef HAVE_AIO_LITE_H
#ifdef NEEDS_ADIOCB_T #include <aio-lite.h>
typedef struct adiocb adiocb_t; #else
#endif #ifdef HAVE_AIO_H
#endif #include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#endif
#endif
# endif
#endif #endif
void ADIOI_PANFS_Open(ADIO_File fd, int *error_code); void ADIOI_PANFS_Open(ADIO_File fd, int *error_code);
......
...@@ -18,11 +18,16 @@ ...@@ -18,11 +18,16 @@
#ifdef HAVE_SYS_TYPES_H #ifdef HAVE_SYS_TYPES_H
#include <sys/types.h> #include <sys/types.h>
#endif #endif
#ifdef HAVE_AIO_H
#include <aio.h> #ifdef HAVE_AIO_LITE_H
#endif #include <aio-lite.h>
#ifdef HAVE_SYS_AIO_H #else
#include <sys/aio.h> #ifdef HAVE_AIO_H
#include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#endif
#endif #endif
/* Workaround for incomplete set of definitions if __REDIRECT is not /* Workaround for incomplete set of definitions if __REDIRECT is not
......
...@@ -16,11 +16,16 @@ ...@@ -16,11 +16,16 @@
#ifdef HAVE_SYS_TYPES_H #ifdef HAVE_SYS_TYPES_H
#include <sys/types.h> #include <sys/types.h>
#endif #endif
#ifdef HAVE_AIO_H
#include <aio.h> #ifdef HAVE_AIO_LITE_H
#endif #include <aio-lite.h>
#ifdef HAVE_SYS_AIO_H #else
#include <sys/aio.h> #ifdef HAVE_AIO_H
#include <aio.h>
#endif
#ifdef HAVE_SYS_AIO_H
#include <sys/aio.h>
#endif
#endif #endif
/* Workaround for incomplete set of definitions if __REDIRECT is not /* Workaround for incomplete set of definitions if __REDIRECT is not
......
...@@ -1137,6 +1137,22 @@ if test "$ac_cv_header_aio_h" = "yes" -o "$ac_cv_header_sys_aio_h" = "yes" -o "x ...@@ -1137,6 +1137,22 @@ if test "$ac_cv_header_aio_h" = "yes" -o "$ac_cv_header_sys_aio_h" = "yes" -o "x
#endif] ] ) #endif] ] )
fi fi
# the aio-lite package provides an aio facility in case system aio library is
# buggy or does not perform well. for example, one fortran test does not pass
# its non-blocking collective I/O test
# See http://trac.mpich.org/projects/mpich/ticket/2201 for one such failure.
AC_ARG_WITH([aio-lite],
[AS_HELP_STRING([--with-aio-lite],
[use alternate external aio implementation])],
[with_aiolite=yes],
[])
AS_IF([test "x$with_aiolite" == xyes],
AC_CHECK_LIB([aio-lite], [lio_listio],
[], [], [-lpthread]
)
AC_CHECK_HEADERS([aio-lite.h])
)
# End of aio-related tests # End of aio-related tests
# #
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment