"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/mpid/ch3/src/ch3u_eager.c" between
mvapich2-2.3.1.tar.gz and mvapich2-2.3.2.tar.gz

About: MVAPICH2 offers "MPI over InfiniBand, 10GigE/iWARP and RDMA over Converged Ethernet (RoCE)" to achieve best performance, scalability and fault tolerance for high-end computing systems and servers.

ch3u_eager.c  (mvapich2-2.3.1):ch3u_eager.c  (mvapich2-2.3.2)
skipping to change at line 285 skipping to change at line 285
#ifdef USE_EAGER_SHORT #ifdef USE_EAGER_SHORT
/* Send a short contiguous eager message. We'll want to optimize (and possibly /* Send a short contiguous eager message. We'll want to optimize (and possibly
inline) this inline) this
Make sure that buf is at the beginning of the data to send; Make sure that buf is at the beginning of the data to send;
adjust by adding dt_true_lb if necessary adjust by adding dt_true_lb if necessary
We may need a nonblocking (cancellable) version of this, which will We may need a nonblocking (cancellable) version of this, which will
have a smaller payload. have a smaller payload.
*/ */
#undef FUNCNAME #undef FUNCNAME
#define FUNCNAME MPIDI_EagerContigShortSend #define FUNCNAME MPIDI_EagerContigShortSend
#undef FCNAME #undef FCNAME
#define FCNAME MPL_QUOTE(FUNCNAME) #define FCNAME MPL_QUOTE(FUNCNAME)
int MPIDI_CH3_EagerContigShortSend( MPID_Request **sreq_p, int MPIDI_CH3_EagerContigShortSend( MPID_Request **sreq_p,
MPIDI_CH3_Pkt_type_t reqtype, MPIDI_CH3_Pkt_type_t reqtype,
const void * buf, MPIDI_msg_sz_t data_sz, int rank, const void * buf, MPIDI_msg_sz_t data_sz, int rank,
int tag, MPID_Comm * comm, int tag, MPID_Comm * comm,
int context_offset ) int context_offset )
{ {
skipping to change at line 308 skipping to change at line 309
MPIDI_CH3_Pkt_t upkt; MPIDI_CH3_Pkt_t upkt;
MPIDI_CH3_Pkt_eagershort_send_t * const eagershort_pkt = MPIDI_CH3_Pkt_eagershort_send_t * const eagershort_pkt =
&upkt.eagershort_send; &upkt.eagershort_send;
MPL_IOV iov[MPL_IOV_LIMIT]; MPL_IOV iov[MPL_IOV_LIMIT];
#endif #endif
MPID_Request *sreq = *sreq_p; MPID_Request *sreq = *sreq_p;
#if defined(CHANNEL_MRAIL) && defined(MPID_USE_SEQUENCE_NUMBERS) #if defined(CHANNEL_MRAIL) && defined(MPID_USE_SEQUENCE_NUMBERS)
MPID_Seqnum_t seqnum = 0; MPID_Seqnum_t seqnum = 0;
#endif /* defined(CHANNEL_MRAIL) && defined(MPID_USE_SEQUENCE_NUMBERS) */ #endif /* defined(CHANNEL_MRAIL) && defined(MPID_USE_SEQUENCE_NUMBERS) */
MPIU_DBG_MSG_FMT(CH3_OTHER,VERBOSE,(MPIU_DBG_FDEST, /*PRINT_DEBUG(DEBUG_SHM_verbose>1,
"sending contiguous short eager message, data_sz=" MPIDI_MSG_SZ_FMT, "sending contiguous short eager message to rank: %d, data_sz: %d, sr
data_sz)); eq: %p\n",
rank, data_sz, sreq);*/
#if defined(CHANNEL_MRAIL) #if defined(CHANNEL_MRAIL)
{ {
MPIDI_Comm_get_vc_set_active(comm, rank, &vc); MPIDI_Comm_get_vc_set_active(comm, rank, &vc);
if (vc->eager_fast_rfp_fn && if (vc->eager_fast_rfp_fn) {
!(unlikely(num_rdma_buffer < 2 ||
vc->mrail.rfp.phead_RDMA_send == vc->mrail.rfp.ptail_RDMA_send ||
vc->mrail.rfp.RDMA_send_buf[vc->mrail.rfp.phead_RDMA_send].padding
== BUSY_FLAG ||
((data_sz + sizeof(MPIDI_CH3_Pkt_eager_send_t)) > MRAIL_MAX_RDMA_FP
_SIZE))
)) {
mpi_errno = vc->eager_fast_rfp_fn(vc, buf, data_sz, rank, mpi_errno = vc->eager_fast_rfp_fn(vc, buf, data_sz, rank,
tag, comm, contex t_offset); tag, comm, contex t_offset, sreq_p);
} else { } else {
mpi_errno = vc->eager_fast_fn(vc, buf, data_sz, rank, mpi_errno = vc->eager_fast_fn(vc, buf, data_sz, rank,
tag, comm, context_of fset, sreq_p); tag, comm, context_of fset, sreq_p);
} }
if (sreq) { if (sreq) {
MPIU_Object_set_ref(sreq, 1); MPIU_Object_set_ref(sreq, 1);
MPID_cc_set(&sreq->cc, 0); MPID_cc_set(&sreq->cc, 0);
} }
/* Message was queued. Will resend later */ /* Message was queued. Will resend later */
mpi_errno = MPI_SUCCESS; mpi_errno = MPI_SUCCESS;
skipping to change at line 384 skipping to change at line 380
} }
#endif #endif
sreq = *sreq_p; sreq = *sreq_p;
if (sreq != NULL) { if (sreq != NULL) {
/*printf( "Surprise, did not complete send of eagershort (starting connec tion?)\n" ); /*printf( "Surprise, did not complete send of eagershort (starting connec tion?)\n" );
fflush(stdout); */ fflush(stdout); */
/* MT FIXME setting fields in the request after it has been given to the /* MT FIXME setting fields in the request after it has been given to the
* progress engine is racy. The start call above is protected by * progress engine is racy. The start call above is protected by
* vc CS, but the progress engine is protected by MPIDCOMM. So * vc CS, but the progress engine is protected by MPIDCOMM. So
* we can't just extend the CS type below this point... what's the fix? */ * we can't just extend the CS type below this point... what's the fix? */
PRINT_DEBUG(DEBUG_SHM_verbose>1,
"eager send to %d delayed, request enqueued: %p, type: %d ch.req
type: %d\n",
rank, sreq, MPIDI_Request_get_type(sreq), sreq->ch.reqtype);
MPIDI_Request_set_seqnum(sreq, seqnum); MPIDI_Request_set_seqnum(sreq, seqnum);
MPIDI_Request_set_type(sreq, MPIDI_REQUEST_TYPE_SEND); MPIDI_Request_set_type(sreq, MPIDI_REQUEST_TYPE_SEND);
} }
#if !defined(CHANNEL_MRAIL) #if !defined(CHANNEL_MRAIL)
fn_fail: fn_fail:
#endif #endif
return mpi_errno; return mpi_errno;
} }
 End of changes. 5 change blocks. 
12 lines changed or deleted 11 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)