1. 05 Mar, 2013 7 commits
    • Dave Goodell's avatar
      mpi.h: guard `long double`-derived MPI types · 90939951
      Dave Goodell authored
      Probably not too harmful to omit the guards, but better not to jumble
      more constants together in the compiler's type-checking machinery.
      
      No reviewer.
      90939951
    • Dave Goodell's avatar
      clang annotations: fix `long double _Complex' · 71552aac
      Dave Goodell authored
      Obvious bug.
      
      No reviewer.
      71552aac
    • Dave Goodell's avatar
      `long double _Complex` depends on `long double` · a9305613
      Dave Goodell authored
      It was possible to have a working `long double _Complex` even if the MPI
      library was pretending that `long double` should not work.
      
      Ditto for the C++ version.
      
      No reviewer.
      a9305613
    • Dave Goodell's avatar
      configure: add `--disable-long-double` · afe8c4a4
      Dave Goodell authored
      This helps Cray out (and conceivably other vendors), since they ship
      several compilers which have different interpretations of what `long
      double` should mean (80-bit vs. 128-bit, being most common).
      
      Note that exporting `MPID_NO_LONG_DOUBLE=yes` in the environment before
      running `configure` does work, but may not work as intended in the face
      of an automake-initiated reconfigure.  Autoconf does not treat this
      variable as precious (and we don't ask it to, since it's for
      inside-configure-use only), so its value will not be preserved for the
      reconfigure.  The same holds for any `MPID_` variables mentioned at the
      top of `configure.ac`.
      
      No reviewer.
      afe8c4a4
    • Dave Goodell's avatar
      fix compile error when `long double` is disabled · 3f1fcead
      Dave Goodell authored
      Otherwise `oputil.h` barfs on a bad preprocessor comparison when
      `MPID_NO_LONG_DOUBLE` is set.
      
      Fix reported by and suggested by Steve Oyanagi from Cray.
      
      No reviewer.
      3f1fcead
    • Dave Goodell's avatar
      move `_NULL` handle definitions earlier in mpi.h · d9db47ae
      Dave Goodell authored
      In particular, the clang type checking helpers can cause
      `MPI_DATATYPE_NULL` to be used before it has been `#define`d.
      
      No reviewer.
      d9db47ae
    • Dave Goodell's avatar
      .gitignore: fixup for [006dd97e] · bba79775
      Dave Goodell authored
      bba79775
  2. 01 Mar, 2013 6 commits
  3. 28 Feb, 2013 2 commits
  4. 25 Feb, 2013 1 commit
    • James Dinan's avatar
      Added missing CS ENTER/EXIT guards to type_commit · 59e48128
      James Dinan authored
      MPI_Type_commit was missing CS ENTER/EXIT guards, which may be causing a
      conflict with RMA code that creates derived datatypes at the target
      process, when MPICH_ASYNC_PROGRESS is specified.  This may have fixed #1766.
      
      Reviewer: goodell
      59e48128
  5. 22 Feb, 2013 6 commits
  6. 21 Feb, 2013 18 commits
    • James Dinan's avatar
      Merge branch 'packet-header-flags' · 9e68dcf8
      James Dinan authored
      This merge adds a flags field to the packet header in RMA packets.  The flags
      are used to piggyback RMA synchronization operations.
      9e68dcf8
    • James Dinan's avatar
      Added missing CPPFLAGS in rma tests makefile · 3aeb375d
      James Dinan authored
      Reviewer: goodell
      3aeb375d
    • James Dinan's avatar
      Remove unnecessary flush for empty epochs · 402bc161
      James Dinan authored
      I initially added a conservative flush message for empty epochs (mostly
      for documentation purposes).  This is not needed in the current
      implementation, since ops are not issued eagerly.  If/when eager ops are
      implemented, this patch should be reverted and additional window state
      tracking for this case should be added.  In the meantime, I am removing
      this code to improve performance.
      
      Reviewer: goodell
      402bc161
    • James Dinan's avatar
      Finished adding memory fences for shr mem win · 7dee7463
      James Dinan authored
      This patch adds a few missing memory fences to the window
      synchronization operations for shared memory windows.  This closes
      ticket #1729.
      
      Reviewer: goodell
      7dee7463
    • James Dinan's avatar
      Cleaned up error names for CH3 RMA implementation · 64b60170
      James Dinan authored
      Moved RMA errors used in the CH3 RMA implementation into the ch3
      errnames.txt file.
      
      Reviewer: goodell
      64b60170
    • James Dinan's avatar
      Add a MODE_NOCHECK version of the llist bench test · 625bf4fd
      James Dinan authored
      Additional testing for shared lock with MODE_NOCHECK.
      
      Reviewer: goodell
      625bf4fd
    • James Dinan's avatar
      Implemented lock op piggybacking for MODE_NOCHECK · 223fce45
      James Dinan authored
      When the MPI_MODE_NOCHECK assertion is given to a passive target lock
      operation, we defer acquisition of the lock and piggyback the request on
      the first RMA op to the target.  This eliminates a round-trip
      lock-request message.
      
      Reviewer: goodell
      223fce45
    • James Dinan's avatar
      Flush piggybacking · 9c3a32fd
      James Dinan authored
      This patch adds piggybacking of flush synchronization on top of the last
      operation in an RMA epoch.
      
      Reviewer: goodell
      9c3a32fd
    • James Dinan's avatar
      Removed unused single_op_opt field from MPID_Request · 255fb4a6
      James Dinan authored
      The single_op_opt flag in the request object was previously used to
      track whether an operation is a lock-op-unlock type, for the purposes of
      completion.  Tracking this state has been merged into the packet header
      flags, so the single_op_opt flag is no longer needed.
      
      Reviewer: goodell
      255fb4a6
    • James Dinan's avatar
      Cleanup of FOP packet header · 422006da
      James Dinan authored
      Removed source_win_handle from the packet header, since it's no longer
      needed.
      
      Reviewer: goodell
      422006da
    • James Dinan's avatar
      Simplify get completion · 1c737a37
      James Dinan authored
      We can simplify completion of get operations at the target, since
      Finish_rma_op should now be called unconditionally.  Flags are now used
      to determing whether an acknowledgement should be sent, so the
      source_window_handle check is removed.
      
      Reviewer: goodell
      1c737a37
    • James Dinan's avatar
      RMA sync. piggybacking from origin->target · 4e67607f
      James Dinan authored
      This patch uses packet header flags to piggyback the unlock operation on other
      RMA operations.  For most operations, there is no net change.  However, FOP and
      GACC, unlock piggybacking was previously not implemented.
      
      Reviewer: goodell
      4e67607f
    • James Dinan's avatar
      Added flags to MPID_Request · 90be9ee1
      James Dinan authored
      Added a flags field to MPID_Request that we can use to stash flags from
      suspended RMA ops and retrieve them later when we complete the operation.
      
      Reviewer: goodell
      90be9ee1
    • James Dinan's avatar
      Integrated flags into RMA op processing · 478a80f5
      James Dinan authored
      This change extends RMA op processing to pass around flags as needed.  It
      doesn't yet utilize the flags.
      
      Reviewer: goodell
      478a80f5
    • James Dinan's avatar
      Added flags field to RMA op packet headers · c3f87fe3
      James Dinan authored
      Added flags field to RMA operation packets that are sent from origin to target.
      This will be used to piggyback RMA synchronization operations.
      
      Reviewer: goodell
      c3f87fe3
    • James Dinan's avatar
      Converted packet type field to 16-bits · 90b3b2f8
      James Dinan authored
      Convert the packet type field from an enum to a uint16.  This change was also
      applied to packet types defined by Nemesis.  Downstream netmod developers will
      also have to make this change if they defined new packet types.
      
      Reviewer: goodell
      90b3b2f8
    • James Dinan's avatar
      Consolidated RMA op finalization code · bba35589
      James Dinan authored
      This patch consolidates the synchronization and tracking of RMA operations into
      a single routine that is called whenever we complete an operation.  The only
      exception are lock-op-unlock operations that are completed from within the lock
      operation processing code.
      
      This code is pretty ugly, but it will get cleaner once packet flags are been
      added.
      
      Reviewer: goodell
      bba35589
    • James Dinan's avatar
      Temporarily reverted is_gacc_op bugfix · c5312557
      James Dinan authored
      Partially reverted [0b364068] in preparation for incorporating new
      piggybacking infrastructure.  This temporarily re-introduces that bug
      and it will be fixed again with the new piggybacking patch.
      
      Reviwer: goodell
      c5312557