From 71430221d3277ce58b9bd9a9dd8f0c2e481b09cb Mon Sep 17 00:00:00 2001 From: Arlin Davis Date: Thu, 17 Aug 2006 22:10:06 +0000 Subject: [PATCH] r9005: update dtest to include multiple segment rdma write test case. modify makefile to use default DAPL_PROVIDER=OpenIB-cma --- test/dtest/dtest.c | 85 +++++++++++++++++++++++++-------------------- test/dtest/makefile | 4 +-- 2 files changed, 49 insertions(+), 40 deletions(-) diff --git a/test/dtest/dtest.c b/test/dtest/dtest.c index 72be63f..fe8a366 100644 --- a/test/dtest/dtest.c +++ b/test/dtest/dtest.c @@ -55,12 +55,12 @@ #include "dat/udat.h" /* definitions */ -#define SERVER_CONN_QUAL 45248 -#define DTO_TIMEOUT (1000*1000*5) -#define DTO_FLUSH_TIMEOUT (1000*1000*2) -#define CONN_TIMEOUT (1000*1000*10) -#define SERVER_TIMEOUT (1000*1000*20) -#define RDMA_BUFFER_SIZE (64) +#define SERVER_CONN_QUAL 45248 +#define DTO_TIMEOUT (1000*1000*5) +#define DTO_FLUSH_TIMEOUT (1000*1000*2) +#define CONN_TIMEOUT (1000*1000*10) +#define SERVER_TIMEOUT (1000*1000*20) +#define RDMA_BUFFER_SIZE (64) /* Global DAT vars */ static DAT_IA_HANDLE h_ia = DAT_HANDLE_NULL; @@ -83,29 +83,30 @@ static DAT_LMR_CONTEXT lmr_context_send; static DAT_LMR_CONTEXT lmr_context_recv; static DAT_RMR_CONTEXT rmr_context_send; static DAT_RMR_CONTEXT rmr_context_recv; -static DAT_VLEN registered_size_send; -static DAT_VLEN registered_size_recv; -static DAT_VADDR registered_addr_send; -static DAT_VADDR registered_addr_recv; +static DAT_VLEN registered_size_send; +static DAT_VLEN registered_size_recv; +static DAT_VADDR registered_addr_send; +static DAT_VADDR registered_addr_recv; /* Initial msg receive buf, RMR exchange, and Rdma-write notification */ -#define MSG_BUF_COUNT 3 -static DAT_RMR_TRIPLET rmr_recv_msg[ MSG_BUF_COUNT ]; +#define MSG_BUF_COUNT 3 +#define MSG_IOV_COUNT 4 +static DAT_RMR_TRIPLET rmr_recv_msg[MSG_BUF_COUNT]; static DAT_LMR_HANDLE h_lmr_recv_msg = DAT_HANDLE_NULL; static DAT_LMR_CONTEXT lmr_context_recv_msg; static DAT_RMR_CONTEXT rmr_context_recv_msg; -static DAT_VLEN registered_size_recv_msg; -static DAT_VADDR registered_addr_recv_msg; +static DAT_VLEN registered_size_recv_msg; +static DAT_VADDR registered_addr_recv_msg; /* message send buffer */ -static DAT_RMR_TRIPLET rmr_send_msg; -static DAT_LMR_HANDLE h_lmr_send_msg = DAT_HANDLE_NULL; -static DAT_LMR_CONTEXT lmr_context_send_msg; -static DAT_RMR_CONTEXT rmr_context_send_msg; -static DAT_VLEN registered_size_send_msg; -static DAT_VADDR registered_addr_send_msg; -static DAT_EP_ATTR ep_attr; -char hostname[256] = {0}; +static DAT_RMR_TRIPLET rmr_send_msg; +static DAT_LMR_HANDLE h_lmr_send_msg = DAT_HANDLE_NULL; +static DAT_LMR_CONTEXT lmr_context_send_msg; +static DAT_RMR_CONTEXT rmr_context_send_msg; +static DAT_VLEN registered_size_send_msg; +static DAT_VADDR registered_addr_send_msg; +static DAT_EP_ATTR ep_attr; +char hostname[256] = {0}; /* rdma pointers */ char *rbuf = NULL; @@ -301,8 +302,8 @@ main(int argc, char **argv) ep_attr.recv_completion_flags = 0; ep_attr.max_recv_dtos = MSG_BUF_COUNT + (burst*3); ep_attr.max_request_dtos = MSG_BUF_COUNT + (burst*3) + MAX_RDMA_RD; - ep_attr.max_recv_iov = 1; - ep_attr.max_request_iov = 1; + ep_attr.max_recv_iov = MSG_IOV_COUNT; + ep_attr.max_request_iov = MSG_IOV_COUNT; ep_attr.max_rdma_read_in = MAX_RDMA_RD; ep_attr.max_rdma_read_out = MAX_RDMA_RD; ep_attr.request_completion_flags = DAT_COMPLETION_DEFAULT_FLAG; @@ -483,7 +484,7 @@ void init_data() DAT_RETURN -send_msg( void *data, +send_msg( void *data, DAT_COUNT size, DAT_LMR_CONTEXT context, DAT_DTO_COOKIE cookie, @@ -498,6 +499,7 @@ send_msg( void *data, iov.pad = 0; iov.virtual_address = (DAT_VADDR)(unsigned long)data; iov.segment_length = size; + LOGPRINTF("%d calling post_send\n", getpid()); cookie.as_64 = 0xaaaa; ret = dat_ep_post_send( h_ep, @@ -609,7 +611,7 @@ connect_ep( char *hostname, int conn_id ) LOGPRINTF("%d Registering Receive Message Buffer %p\n", getpid(), rmr_recv_msg ); region.for_va = rmr_recv_msg; - ret = dat_lmr_create( h_ia, + ret = dat_lmr_create( h_ia, DAT_MEM_TYPE_VIRTUAL, region, sizeof(DAT_RMR_TRIPLET)*MSG_BUF_COUNT, @@ -938,7 +940,7 @@ do_rdma_write_with_msg( ) DAT_REGION_DESCRIPTION region; DAT_EVENT event; DAT_COUNT nmore; - DAT_LMR_TRIPLET l_iov; + DAT_LMR_TRIPLET l_iov[MSG_IOV_COUNT]; DAT_RMR_TRIPLET r_iov; DAT_DTO_COOKIE cookie; DAT_RMR_CONTEXT their_context; @@ -956,21 +958,28 @@ do_rdma_write_with_msg( ) r_iov = rmr_recv_msg[ recv_msg_index-1 ]; if ( server ) - strcpy( (char*)sbuf, "server written data..." ); + strcpy( (char*)sbuf, "server RDMA write data..." ); else - strcpy( (char*)sbuf, "client written data..." ); - - l_iov.lmr_context = lmr_context_send; - l_iov.pad = 0; - l_iov.virtual_address = (DAT_VADDR)(unsigned long)sbuf; - l_iov.segment_length = buf_len; + strcpy( (char*)sbuf, "client RDMA write data..." ); + + for (i=0;i