#include "gmnal.h"
-ptl_err_t gmnal_cb_recv(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
- unsigned int niov, struct iovec *iov, size_t offset,
+ptl_err_t gmnal_cb_recv(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
+ unsigned int niov, struct iovec *iov, size_t offset,
size_t mlen, size_t rlen)
{
- void *buffer = NULL;
+ void *buffer = NULL;
gmnal_srxd_t *srxd = (gmnal_srxd_t*)private;
int status = PTL_OK;
CDEBUG(D_TRACE, "gmnal_cb_recv libnal [%p], private[%p], cookie[%p], "
- "niov[%d], iov [%p], offset["LPSZ"], mlen["LPSZ"], rlen["LPSZ"]\n",
+ "niov[%d], iov [%p], offset["LPSZ"], mlen["LPSZ"], rlen["LPSZ"]\n",
libnal, private, cookie, niov, iov, offset, mlen, rlen);
switch(srxd->type) {
/* HP SFS 1380: Proactively change receives to avoid a receive
* side occurrence of filling pkmap_count[].
*/
- buffer = srxd->buffer;
+ buffer = srxd->buffer;
buffer += sizeof(gmnal_msghdr_t);
buffer += sizeof(ptl_hdr_t);
- while(niov--) {
+ while(niov--) {
if (offset >= iov->iov_len) {
offset -= iov->iov_len;
} else if (offset > 0) {
- CDEBUG(D_INFO, "processing [%p] base [%p] len %d, "
- "offset %d, len ["LPSZ"]\n", iov,
- iov->iov_base + offset, iov->iov_len, offset,
- iov->iov_len - offset);
+ CDEBUG(D_INFO, "processing [%p] base [%p] "
+ "len %d, offset %d, len ["LPSZ"]\n", iov,
+ iov->iov_base + offset, iov->iov_len,
+ offset, iov->iov_len - offset);
gm_bcopy(buffer, iov->iov_base + offset,
iov->iov_len - offset);
buffer += iov->iov_len - offset;
offset = 0;
} else {
- CDEBUG(D_INFO, "processing [%p] len ["LPSZ"]\n", iov,
- iov->iov_len);
+ CDEBUG(D_INFO, "processing [%p] len ["LPSZ"]\n",
+ iov, iov->iov_len);
gm_bcopy(buffer, iov->iov_base, iov->iov_len);
buffer += iov->iov_len;
}
status = gmnal_large_rx(libnal, private, cookie, niov,
iov, offset, mlen, rlen);
}
-
CDEBUG(D_INFO, "gmnal_cb_recv gmnal_return status [%d]\n", status);
return(status);
}
-ptl_err_t gmnal_cb_recv_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
- unsigned int kniov, ptl_kiov_t *kiov, size_t offset,
- size_t mlen, size_t rlen)
+ptl_err_t gmnal_cb_recv_pages(lib_nal_t *libnal, void *private,
+ lib_msg_t *cookie, unsigned int kniov,
+ ptl_kiov_t *kiov, size_t offset, size_t mlen,
+ size_t rlen)
{
gmnal_srxd_t *srxd = (gmnal_srxd_t*)private;
int status = PTL_OK;
libnal, private, cookie, kniov, kiov, offset, mlen, rlen);
if (srxd->type == GMNAL_SMALL_MESSAGE) {
- buffer = srxd->buffer;
+ buffer = srxd->buffer;
buffer += sizeof(gmnal_msghdr_t);
buffer += sizeof(ptl_hdr_t);
* map each page and create an iovec for it
*/
while (kniov--) {
- /* HP SFS 1380: Proactively change receives to avoid a receive
- * side occurrence of filling pkmap_count[].
+ /* HP SFS 1380: Proactively change receives to avoid a
+ * receive side occurrence of filling pkmap_count[].
*/
- CDEBUG(D_INFO, "processing kniov [%d] [%p]\n", kniov, kiov);
+ CDEBUG(D_INFO, "processing kniov [%d] [%p]\n",
+ kniov, kiov);
if (offset >= kiov->kiov_len) {
offset -= kiov->kiov_len;
} else {
- CDEBUG(D_INFO, "kniov page [%p] len [%d] offset[%d]\n",
- kiov->kiov_page, kiov->kiov_len,
- kiov->kiov_offset);
+ CDEBUG(D_INFO, "kniov page [%p] len [%d] "
+ "offset[%d]\n", kiov->kiov_page,
+ kiov->kiov_len, kiov->kiov_offset);
CDEBUG(D_INFO, "Calling kmap[%p]", kiov->kiov_page);
- ptr = ((char *)kmap(kiov->kiov_page)) + kiov->kiov_offset;
+ ptr = ((char *)kmap(kiov->kiov_page)) +
+ kiov->kiov_offset;
if (offset > 0) {
- CDEBUG(D_INFO, "processing [%p] base [%p] len %d, "
- "offset %d, len ["LPSZ"]\n", ptr,
- ptr + offset, kiov->kiov_len, offset,
+ CDEBUG(D_INFO, "processing [%p] base "
+ "[%p] len %d, offset %d, len ["
+ LPSZ"]\n", ptr, ptr + offset,
+ kiov->kiov_len, offset,
kiov->kiov_len - offset);
gm_bcopy(buffer, ptr + offset,
- kiov->kiov_len - offset);
+ kiov->kiov_len - offset);
buffer += kiov->kiov_len - offset;
offset = 0;
} else {
- CDEBUG(D_INFO, "processing [%p] len ["LPSZ"]\n", ptr,
- kiov->kiov_len);
+ CDEBUG(D_INFO, "processing [%p] len ["
+ LPSZ"]\n", ptr, kiov->kiov_len);
gm_bcopy(buffer, ptr, kiov->kiov_len);
buffer += kiov->kiov_len;
}
kunmap(kiov->kiov_page);
CDEBUG(D_INFO, "Stored in [%p]\n", ptr);
- }
+ }
kiov++;
}
CDEBUG(D_INFO, "calling gmnal_small_rx\n");
status = gmnal_small_rx(libnal, private, cookie);
}
-
CDEBUG(D_INFO, "gmnal_return status [%d]\n", status);
return(status);
}
-ptl_err_t gmnal_cb_send(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
- ptl_hdr_t *hdr, int type, ptl_nid_t nid, ptl_pid_t pid,
- unsigned int niov, struct iovec *iov, size_t offset, size_t len)
+ptl_err_t gmnal_cb_send(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
+ ptl_hdr_t *hdr, int type, ptl_nid_t nid, ptl_pid_t pid,
+ unsigned int niov, struct iovec *iov, size_t offset,
+ size_t len)
{
gmnal_data_t *nal_data;
gmnal_stxd_t *stxd = NULL;
- CDEBUG(D_TRACE, "gmnal_cb_send niov[%d] offset["LPSZ"] len["LPSZ"] nid["LPU64"]\n",
- niov, offset, len, nid);
+ CDEBUG(D_TRACE, "gmnal_cb_send niov[%d] offset["LPSZ"] len["LPSZ
+ "] nid["LPU64"]\n", niov, offset, len, nid);
nal_data = libnal->libnal_data;
if (!nal_data) {
CDEBUG(D_ERROR, "no nal_data\n");
} else {
CDEBUG(D_INFO, "nal_data [%p]\n", nal_data);
}
-
+
if (GMNAL_IS_SMALL_MESSAGE(nal_data, niov, iov, len)) {
CDEBUG(D_INFO, "This is a small message send\n");
/*
- * HP SFS 1380: With the change to gmnal_small_tx, need to get the stxd
- * and do relevant setup here
+ * HP SFS 1380: With the change to gmnal_small_tx, need to get
+ * the stxd and do relevant setup here
*/
stxd = gmnal_get_stxd(nal_data, 1);
CDEBUG(D_INFO, "stxd [%p]\n", stxd);
/* Set the offset of the data to copy into the buffer */
- buffer = stxd->buffer + sizeof(gmnal_msghdr_t) + sizeof(ptl_hdr_t);
+ buffer = stxd->buffer +sizeof(gmnal_msghdr_t)+sizeof(ptl_hdr_t);
while(niov--) {
if (offset >= iov->iov_len) {
offset -= iov->iov_len;
} else if (offset > 0) {
- CDEBUG(D_INFO, "processing iov [%p] base [%p] len ["LPSZ"] to [%p]\n",
- iov, iov->iov_base + offset, iov->iov_len - offset, buffer);
- gm_bcopy(iov->iov_base + offset, buffer, iov->iov_len - offset);
+ CDEBUG(D_INFO, "processing iov [%p] base [%p] "
+ "len ["LPSZ"] to [%p]\n",
+ iov, iov->iov_base + offset,
+ iov->iov_len - offset, buffer);
+ gm_bcopy(iov->iov_base + offset, buffer,
+ iov->iov_len - offset);
buffer+= iov->iov_len - offset;
offset = 0;
} else {
- CDEBUG(D_INFO, "processing iov [%p] len ["LPSZ"] to [%p]\n",
- iov, iov->iov_len, buffer);
+ CDEBUG(D_INFO, "processing iov [%p] len ["LPSZ
+ "] to [%p]\n", iov, iov->iov_len,buffer);
gm_bcopy(iov->iov_base, buffer, iov->iov_len);
buffer+= iov->iov_len;
}
iov++;
}
- gmnal_small_tx(libnal, private, cookie, hdr, type, nid, pid,
+ gmnal_small_tx(libnal, private, cookie, hdr, type, nid, pid,
stxd, len);
} else {
CDEBUG(D_ERROR, "Large message send is not supported\n");
lib_finalize(libnal, private, cookie, PTL_FAIL);
return(PTL_FAIL);
- gmnal_large_tx(libnal, private, cookie, hdr, type, nid, pid,
+ gmnal_large_tx(libnal, private, cookie, hdr, type, nid, pid,
niov, iov, offset, len);
}
return(PTL_OK);
}
-ptl_err_t gmnal_cb_send_pages(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
- ptl_hdr_t *hdr, int type, ptl_nid_t nid, ptl_pid_t pid,
- unsigned int kniov, ptl_kiov_t *kiov, size_t offset, size_t len)
+ptl_err_t gmnal_cb_send_pages(lib_nal_t *libnal, void *private,
+ lib_msg_t *cookie, ptl_hdr_t *hdr, int type,
+ ptl_nid_t nid, ptl_pid_t pid, unsigned int kniov,
+ ptl_kiov_t *kiov, size_t offset, size_t len)
{
gmnal_data_t *nal_data;
gmnal_stxd_t *stxd = NULL;
ptl_err_t status = PTL_OK;
- CDEBUG(D_TRACE, "gmnal_cb_send_pages nid ["LPU64"] niov[%d] offset["LPSZ"] len["LPSZ"]\n",
- nid, kniov, offset, len);
+ CDEBUG(D_TRACE, "gmnal_cb_send_pages nid ["LPU64"] niov[%d] offset["
+ LPSZ"] len["LPSZ"]\n", nid, kniov, offset, len);
nal_data = libnal->libnal_data;
if (!nal_data) {
CDEBUG(D_ERROR, "no nal_data\n");
}
/* HP SFS 1380: Need to do the gm_bcopy after the kmap so we can kunmap
- * more aggressively. This is the fix for a livelock situation under load
- * on ia32 that occurs when there are no more available entries in the
- * pkmap_count array. Just fill the buffer and let gmnal_small_tx
+ * more aggressively. This is the fix for a livelock situation under
+ * load on ia32 that occurs when there are no more available entries in
+ * the pkmap_count array. Just fill the buffer and let gmnal_small_tx
* put the headers in after we pass it the stxd pointer.
*/
stxd = gmnal_get_stxd(nal_data, 1);
if (GMNAL_IS_SMALL_MESSAGE(nal_data, 0, NULL, len)) {
CDEBUG(D_INFO, "This is a small message send\n");
-
+
while(kniov--) {
CDEBUG(D_INFO, "processing kniov [%d] [%p]\n", kniov, kiov);
if (offset >= kiov->kiov_len) {
kiov->kiov_page, kiov->kiov_len,
kiov->kiov_offset);
- ptr = ((char *)kmap(kiov->kiov_page)) + kiov->kiov_offset;
+ ptr = ((char *)kmap(kiov->kiov_page)) +
+ kiov->kiov_offset;
if (offset > 0) {
- CDEBUG(D_INFO, "processing [%p] base [%p] len ["LPSZ"] to [%p]\n",
- ptr, ptr + offset, kiov->kiov_len - offset, buffer);
- gm_bcopy(ptr + offset, buffer, kiov->kiov_len - offset);
+ CDEBUG(D_INFO, "processing [%p] base "
+ "[%p] len ["LPSZ"] to [%p]\n",
+ ptr, ptr + offset,
+ kiov->kiov_len - offset, buffer);
+ gm_bcopy(ptr + offset, buffer,
+ kiov->kiov_len - offset);
buffer+= kiov->kiov_len - offset;
offset = 0;
} else {
- CDEBUG(D_INFO, "processing kmapped [%p] len ["LPSZ"] to [%p]\n",
+ CDEBUG(D_INFO, "processing kmapped [%p]"
+ " len ["LPSZ"] to [%p]\n",
ptr, kiov->kiov_len, buffer);
gm_bcopy(ptr, buffer, kiov->kiov_len);
}
kiov++;
}
- status = gmnal_small_tx(libnal, private, cookie, hdr, type, nid,
+ status = gmnal_small_tx(libnal, private, cookie, hdr, type, nid,
pid, stxd, len);
} else {
int i = 0;
gmnal_data_t *nal_data;
void *buffer;
gmnal_rxtwe_t *we = NULL;
- int rank;
+ int rank;
if (!arg) {
CDEBUG(D_TRACE, "NO nal_data. Exiting\n");
nal_data = (gmnal_data_t*)arg;
CDEBUG(D_TRACE, "nal_data is [%p]\n", arg);
- for (rank=0; rank<num_rx_threads; rank++)
+ for (rank=0; rank<num_rx_threads; rank++)
if (nal_data->rxthread_pid[rank] == current->pid)
break;
srxd = (gmnal_srxd_t*)private;
/*
- * let portals library know receive is complete
+ * let portals library know receive is complete
*/
CDEBUG(D_PORTALS, "calling lib_finalize\n");
lib_finalize(libnal, private, cookie, PTL_OK);
*/
CDEBUG(D_NET, "calling gm_provide_receive_buffer\n");
GMNAL_GM_LOCK(nal_data);
- gm_provide_receive_buffer_with_tag(nal_data->gm_port, srxd->buffer,
- srxd->gmsize, GM_LOW_PRIORITY, 0);
+ gm_provide_receive_buffer_with_tag(nal_data->gm_port, srxd->buffer,
+ srxd->gmsize, GM_LOW_PRIORITY, 0);
GMNAL_GM_UNLOCK(nal_data);
return(PTL_OK);
* The callback function informs when the send is complete.
*/
ptl_err_t
-gmnal_small_tx(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
- ptl_hdr_t *hdr, int type, ptl_nid_t global_nid, ptl_pid_t pid,
+gmnal_small_tx(lib_nal_t *libnal, void *private, lib_msg_t *cookie,
+ ptl_hdr_t *hdr, int type, ptl_nid_t global_nid, ptl_pid_t pid,
gmnal_stxd_t *stxd, int size)
{
gmnal_data_t *nal_data = (gmnal_data_t*)libnal->libnal_data;
CDEBUG(D_TRACE, "gmnal_small_tx libnal [%p] private [%p] cookie [%p] "
"hdr [%p] type [%d] global_nid ["LPU64"] pid [%d] stxd [%p] "
- "size [%d]\n", libnal, private, cookie, hdr, type,
+ "size [%d]\n", libnal, private, cookie, hdr, type,
global_nid, pid, stxd, size);
CDEBUG(D_INFO, "portals_hdr:: dest_nid ["LPU64"], src_nid ["LPU64"]\n",
if (status != GM_SUCCESS) {
GMNAL_GM_LOCK(nal_data);
gm_status = gm_node_id_to_global_id(nal_data->gm_port,
- stxd->gm_target_node, &gnid);
+ stxd->gm_target_node,&gnid);
GMNAL_GM_UNLOCK(nal_data);
if (gm_status != GM_SUCCESS) {
CDEBUG(D_INFO, "gm_node_id_to_global_id failed[%d]\n",
gm_status);
gnid = 0;
}
- CDEBUG(D_ERROR, "Result of send stxd [%p] is [%s] to [%u]\n",
+ CDEBUG(D_ERROR, "Result of send stxd [%p] is [%s] to [%u]\n",
stxd, gmnal_gm_error(status), gnid);
}
switch(status) {
- case(GM_SUCCESS):
+ case(GM_SUCCESS):
break;
- case(GM_SEND_DROPPED):
+ case(GM_SEND_DROPPED):
/*
* do a resend on the dropped ones
*/
*/
sbuf_long = (unsigned long) sbuf;
remote_ptr = (gm_remote_ptr_t)sbuf_long;
- gm_get(nal_data->gm_port, remote_ptr, rbuf,
- rlen, GM_LOW_PRIORITY, source_node,
- GMNAL_GM_PORT_ID,
+ gm_get(nal_data->gm_port, remote_ptr, rbuf,
+ rlen, GM_LOW_PRIORITY, source_node,
+ GMNAL_GM_PORT_ID,
gmnal_remote_get_callback, ltxd);
GMNAL_GM_UNLOCK(nal_data);
}
/*
* at the end of 1 iov element
- */
+ */
sbuf+=rlen;
slen-=rlen;
riov++;
GMNAL_GM_LOCK(nal_data);
sbuf_long = (unsigned long) sbuf;
remote_ptr = (gm_remote_ptr_t)sbuf_long;
- gm_get(nal_data->gm_port, remote_ptr, rbuf,
- slen, GM_LOW_PRIORITY, source_node,
- GMNAL_GM_PORT_ID,
+ gm_get(nal_data->gm_port, remote_ptr, rbuf,
+ slen, GM_LOW_PRIORITY, source_node,
+ GMNAL_GM_PORT_ID,
gmnal_remote_get_callback, ltxd);
GMNAL_GM_UNLOCK(nal_data);
}
GMNAL_GM_LOCK(nal_data);
sbuf_long = (unsigned long) sbuf;
remote_ptr = (gm_remote_ptr_t)sbuf_long;
- gm_get(nal_data->gm_port, remote_ptr, rbuf,
- rlen, GM_LOW_PRIORITY, source_node,
- GMNAL_GM_PORT_ID,
+ gm_get(nal_data->gm_port, remote_ptr, rbuf,
+ rlen, GM_LOW_PRIORITY, source_node,
+ GMNAL_GM_PORT_ID,
gmnal_remote_get_callback, ltxd);
GMNAL_GM_UNLOCK(nal_data);
}