Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] [OMPI svn-full] svn:open-mpi r16691
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2007-11-08 07:51:28


Whoa; I'm not sure we want to apply this.

All ROMIO patches *must* be coordinated with the ROMIO maintainers.
Otherwise this becomes a complete nightmare of logistics. There's
already a few other ROMIO patches that we have consciously chosen not
to apply because of the tangled issues that arise because of it, such
as:

- "what version of ROMIO is in OMPI?"
- "do you have patch X?"
- ...etc.

Hence, it is best to coordinate all ROMIO patches with the upstream
ROMIO maintainers.

On Nov 8, 2007, at 7:44 AM, adi_at_[hidden] wrote:

> Author: adi
> Date: 2007-11-08 07:44:10 EST (Thu, 08 Nov 2007)
> New Revision: 16691
> URL: https://svn.open-mpi.org/trac/ompi/changeset/16691
>
> Log:
> upstream patch, provided by Jiri Polach. Re #733
>
> Text files modified:
> trunk/ompi/mca/io/romio/romio/adio/common/ad_open.c | 32 +++++++
> +++++++++++++++++++++++++
> 1 files changed, 32 insertions(+), 0 deletions(-)
>
> Modified: trunk/ompi/mca/io/romio/romio/adio/common/ad_open.c
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- trunk/ompi/mca/io/romio/romio/adio/common/ad_open.c (original)
> +++ trunk/ompi/mca/io/romio/romio/adio/common/ad_open.c 2007-11-08
> 07:44:10 EST (Thu, 08 Nov 2007)
> @@ -172,6 +172,37 @@
> */
> /* pvfs2 handles opens specially, so it is actually more
> efficent for that
> * file system if we skip this optimization */
> + /* NFS handles opens especially poorly, so we cannot use this
> optimization
> + * on that FS */
> + if (fd->file_system == ADIO_NFS) {
> + /* no optimizations for NFS: */
> + if ((access_mode & ADIO_CREATE) && (access_mode &
> ADIO_EXCL)) {
> + /* the open should fail if the file exists. Only *1*
> process should
> + check this. Otherwise, if all processes try to check and
> the file
> + does not exist, one process will create the file and
> others who
> + reach later will return error. */
> + if(rank == fd->hints->ranklist[0]) {
> + fd->access_mode = access_mode;
> + (*(fd->fns->ADIOI_xxx_Open))(fd, error_code);
> + MPI_Bcast(error_code, 1, MPI_INT, \
> + fd->hints->ranklist[0], fd->comm);
> + /* if no error, close the file and reopen normally
> below */
> + if (*error_code == MPI_SUCCESS)
> + (*(fd->fns->ADIOI_xxx_Close))(fd,
> error_code);
> + }
> + else MPI_Bcast(error_code, 1, MPI_INT,
> + fd->hints->ranklist[0], fd->comm);
> + if (*error_code != MPI_SUCCESS) {
> + goto fn_exit;
> + }
> + else {
> + /* turn off EXCL for real open */
> + access_mode = access_mode ^ ADIO_EXCL;
> + }
> + }
> + } else {
> +
> + /* the actual optimized create on one, open on all */
> if (access_mode & ADIO_CREATE && fd->file_system != ADIO_PVFS2) {
> if(rank == fd->hints->ranklist[0]) {
> /* remove delete_on_close flag if set */
> @@ -201,6 +232,7 @@
> access_mode ^= ADIO_EXCL;
> }
> }
> + }
>
> /* if we are doing deferred open, non-aggregators should return
> now */
> if (fd->hints->deferred_open ) {
> _______________________________________________
> svn-full mailing list
> svn-full_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/svn-full

-- 
Jeff Squyres
Cisco Systems