From 400ab3b1963d32d8bec82b0f012291e46dbb12b0 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Thu, 25 Oct 2012 00:19:32 -0700 Subject: [PATCH] refresh --- meta | 7 ++--- patches/refresh-temp | 51 ------------------------------- patches/rs-iomap | 73 +++++++++++++++++++++----------------------- 3 files changed, 38 insertions(+), 93 deletions(-) delete mode 100644 patches/refresh-temp diff --git a/meta b/meta index 2961ecba..9b254a14 100644 --- a/meta +++ b/meta @@ -1,9 +1,8 @@ Version: 1 -Previous: 89e523c460ca1705533fe55dddd85794ffccc5f5 -Head: 4590499e2defc92d1d3253062235687cbe884ad3 +Previous: 57fd197bbd80d1fcff150051d3d8c3d71c284c44 +Head: bb9fcba81acdfe34ea5df3bb23a45e0a486207da Applied: - rs-iomap: 5070641f4e87250fd643f8d38b9bf8d45688499e - refresh-temp: 4590499e2defc92d1d3253062235687cbe884ad3 + rs-iomap: bb9fcba81acdfe34ea5df3bb23a45e0a486207da Unapplied: riostream: a1781cc64e41a1f62ec9a41999a40f8958196073 iom-dbg: 88434072d07f8edc58f454ac954d78bd39441eed diff --git a/patches/refresh-temp b/patches/refresh-temp deleted file mode 100644 index 85cb7087..00000000 --- a/patches/refresh-temp +++ /dev/null @@ -1,51 +0,0 @@ -Bottom: 52637b17efade61815ce9a543e6ac319af39e10a -Top: f577125f6a6e9da1cf989ea2c4e933c66a84cf05 -Author: Sean Hefty -Date: 2012-10-25 00:19:31 -0700 - -Refresh of rs-iomap - ---- - -diff --git a/man/rsocket.7 b/man/rsocket.7 -index dc3f9ab..bc5bb10 100644 ---- a/man/rsocket.7 -+++ b/man/rsocket.7 -@@ -7,8 +7,8 @@ rsocket \- RDMA socket API - RDMA socket API and protocol - .SH "NOTES" - Rsockets is a protocol over RDMA that supports a socket-level API --for applications. rsocket APIs are intended to match the behavior --of corresponding socket calls, except where noted. rsocket -+for applications. Rsocket APIs are intended to match the behavior -+of corresponding socket calls, except where noted. Rsocket - functions match the name and function signature of socket calls, - with the exception that all function calls are prefixed with an 'r'. - .P -diff --git a/src/rsocket.c b/src/rsocket.c -index 29b8c01..74dbcc7 100644 ---- a/src/rsocket.c -+++ b/src/rsocket.c -@@ -78,7 +78,7 @@ static uint32_t polling_time = 10; - * bit 29: more data, 0 - end of transfer, 1 - more data available - * - * for data transfers: -- * bits [28:0]: bytes transfered -+ * bits [28:0]: bytes transferred - * for control messages: - * SGL, CTRL - * bits [28-0]: receive credits granted -@@ -519,13 +519,6 @@ static int rs_create_ep(struct rsocket *rs) - return 0; - } - --/* --static xxx rs_acquire_iomap_mr(struct rsocket *rs, ...) --{ -- TODO: write me --} --*/ -- - static void rs_release_iomap_mr(struct rs_iomap_mr *iomr) - { - if (atomic_dec(&iomr->refcnt)) diff --git a/patches/rs-iomap b/patches/rs-iomap index 0beb50cc..6fc026c0 100644 --- a/patches/rs-iomap +++ b/patches/rs-iomap @@ -1,5 +1,5 @@ Bottom: daf53db464152f40dc8d6f2c99844510b03f8567 -Top: 52637b17efade61815ce9a543e6ac319af39e10a +Top: f577125f6a6e9da1cf989ea2c4e933c66a84cf05 Author: Sean Hefty Date: 2012-10-21 14:16:03 -0700 @@ -204,18 +204,22 @@ index 65feda9..f220c13 100644 } #endif diff --git a/man/rsocket.7 b/man/rsocket.7 -index 2ed5ca4..dc3f9ab 100644 +index 2ed5ca4..bc5bb10 100644 --- a/man/rsocket.7 +++ b/man/rsocket.7 -@@ -6,7 +6,7 @@ rsocket \- RDMA socket API +@@ -6,9 +6,9 @@ rsocket \- RDMA socket API .SH "DESCRIPTION" RDMA socket API and protocol .SH "NOTES" -rsockets is a protocol over RDMA that supports a socket-level API +-for applications. rsocket APIs are intended to match the behavior +-of corresponding socket calls, except where noted. rsocket +Rsockets is a protocol over RDMA that supports a socket-level API - for applications. rsocket APIs are intended to match the behavior - of corresponding socket calls, except where noted. rsocket ++for applications. Rsocket APIs are intended to match the behavior ++of corresponding socket calls, except where noted. Rsocket functions match the name and function signature of socket calls, + with the exception that all function calls are prefixed with an 'r'. + .P @@ -30,7 +30,7 @@ rgetpeername, rgetsockname .P rsetsockopt, rgetsockopt, rfcntl @@ -363,7 +367,7 @@ index 5c317a3..d5ef736 100644 local: *; }; diff --git a/src/rsocket.c b/src/rsocket.c -index cc5effe..29b8c01 100644 +index cc5effe..74dbcc7 100644 --- a/src/rsocket.c +++ b/src/rsocket.c @@ -55,6 +55,7 @@ @@ -387,7 +391,7 @@ index cc5effe..29b8c01 100644 * * for data transfers: - * bits [28:0]: bytes transfered, 0 = 1 GB -+ * bits [28:0]: bytes transfered ++ * bits [28:0]: bytes transferred * for control messages: + * SGL, CTRL * bits [28-0]: receive credits granted @@ -568,17 +572,10 @@ index cc5effe..29b8c01 100644 rs->rbuf = calloc(rs->rbuf_size, sizeof(*rs->rbuf)); if (!rs->rbuf) return -1; -@@ -452,6 +519,42 @@ static int rs_create_ep(struct rsocket *rs) +@@ -452,6 +519,35 @@ static int rs_create_ep(struct rsocket *rs) return 0; } -+/* -+static xxx rs_acquire_iomap_mr(struct rsocket *rs, ...) -+{ -+ TODO: write me -+} -+*/ -+ +static void rs_release_iomap_mr(struct rs_iomap_mr *iomr) +{ + if (atomic_dec(&iomr->refcnt)) @@ -611,7 +608,7 @@ index cc5effe..29b8c01 100644 static void rs_free(struct rsocket *rs) { if (rs->index >= 0) -@@ -472,15 +575,20 @@ static void rs_free(struct rsocket *rs) +@@ -472,15 +568,20 @@ static void rs_free(struct rsocket *rs) free(rs->rbuf); } @@ -634,7 +631,7 @@ index cc5effe..29b8c01 100644 fastlock_destroy(&rs->cq_wait_lock); fastlock_destroy(&rs->cq_lock); fastlock_destroy(&rs->rlock); -@@ -492,9 +600,11 @@ static void rs_set_conn_data(struct rsocket *rs, struct rdma_conn_param *param, +@@ -492,9 +593,11 @@ static void rs_set_conn_data(struct rsocket *rs, struct rdma_conn_param *param, struct rs_conn_data *conn) { conn->version = 1; @@ -648,7 +645,7 @@ index cc5effe..29b8c01 100644 conn->target_sgl.addr = htonll((uintptr_t) rs->target_sgl); conn->target_sgl.length = htonl(RS_SGL_SIZE); -@@ -518,6 +628,13 @@ static void rs_save_conn_data(struct rsocket *rs, struct rs_conn_data *conn) +@@ -518,6 +621,13 @@ static void rs_save_conn_data(struct rsocket *rs, struct rs_conn_data *conn) (!rs_host_is_net() && (conn->flags & RS_CONN_FLAG_NET))) rs->opts = RS_OPT_SWAP_SGL; @@ -662,7 +659,7 @@ index cc5effe..29b8c01 100644 rs->target_sgl[0].addr = ntohll(conn->data_buf.addr); rs->target_sgl[0].length = ntohl(conn->data_buf.length); rs->target_sgl[0].key = ntohl(conn->data_buf.key); -@@ -753,7 +870,7 @@ int rconnect(int socket, const struct sockaddr *addr, socklen_t addrlen) +@@ -753,7 +863,7 @@ int rconnect(int socket, const struct sockaddr *addr, socklen_t addrlen) return rs_do_connect(rs); } @@ -671,7 +668,7 @@ index cc5effe..29b8c01 100644 struct ibv_sge *sgl, int nsge, uint32_t imm_data, int flags, uint64_t addr, uint32_t rkey) -@@ -773,6 +890,25 @@ static int rs_post_write(struct rsocket *rs, +@@ -773,6 +883,25 @@ static int rs_post_write(struct rsocket *rs, return rdma_seterrno(ibv_post_send(rs->cm_id->qp, &wr, &bad)); } @@ -697,7 +694,7 @@ index cc5effe..29b8c01 100644 /* * Update target SGE before sending data. Otherwise the remote side may * update the entry before we do. -@@ -799,8 +935,35 @@ static int rs_write_data(struct rsocket *rs, +@@ -799,8 +928,35 @@ static int rs_write_data(struct rsocket *rs, rs->target_sge = 0; } @@ -735,7 +732,7 @@ index cc5effe..29b8c01 100644 } static uint32_t rs_sbuf_left(struct rsocket *rs) -@@ -831,12 +994,12 @@ static void rs_send_credits(struct rsocket *rs) +@@ -831,12 +987,12 @@ static void rs_send_credits(struct rsocket *rs) ibsge.lkey = 0; ibsge.length = sizeof(sge); @@ -754,7 +751,7 @@ index cc5effe..29b8c01 100644 rs->rbuf_bytes_avail -= rs->rbuf_size >> 1; rs->rbuf_free_offset += rs->rbuf_size >> 1; -@@ -845,8 +1008,9 @@ static void rs_send_credits(struct rsocket *rs) +@@ -845,8 +1001,9 @@ static void rs_send_credits(struct rsocket *rs) if (++rs->remote_sge == rs->remote_sgl.length) rs->remote_sge = 0; } else { @@ -766,7 +763,7 @@ index cc5effe..29b8c01 100644 } } -@@ -880,6 +1044,9 @@ static int rs_poll_cq(struct rsocket *rs) +@@ -880,6 +1037,9 @@ static int rs_poll_cq(struct rsocket *rs) case RS_OP_SGL: rs->sseq_comp = (uint16_t) rs_msg_data(imm_data); break; @@ -776,7 +773,7 @@ index cc5effe..29b8c01 100644 case RS_OP_CTRL: if (rs_msg_data(imm_data) == RS_CTRL_DISCONNECT) { rs->state = rs_disconnected; -@@ -888,6 +1055,9 @@ static int rs_poll_cq(struct rsocket *rs) +@@ -888,6 +1048,9 @@ static int rs_poll_cq(struct rsocket *rs) rs->state &= ~rs_connect_rd; } break; @@ -786,7 +783,7 @@ index cc5effe..29b8c01 100644 default: rs->rmsg[rs->rmsg_tail].op = rs_msg_op(imm_data); rs->rmsg[rs->rmsg_tail].data = rs_msg_data(imm_data); -@@ -905,6 +1075,10 @@ static int rs_poll_cq(struct rsocket *rs) +@@ -905,6 +1068,10 @@ static int rs_poll_cq(struct rsocket *rs) if (rs_msg_data((uint32_t) wc.wr_id) == RS_CTRL_DISCONNECT) rs->state = rs_disconnected; break; @@ -797,7 +794,7 @@ index cc5effe..29b8c01 100644 default: rs->sqe_avail++; rs->sbuf_bytes_avail += rs_msg_data((uint32_t) wc.wr_id); -@@ -1046,7 +1220,7 @@ static int rs_poll_all(struct rsocket *rs) +@@ -1046,7 +1213,7 @@ static int rs_poll_all(struct rsocket *rs) */ static int rs_can_send(struct rsocket *rs) { @@ -806,7 +803,7 @@ index cc5effe..29b8c01 100644 (rs->sseq_no != rs->sseq_comp) && (rs->target_sgl[rs->target_sge].length != 0); } -@@ -1216,6 +1390,73 @@ ssize_t rreadv(int socket, const struct iovec *iov, int iovcnt) +@@ -1216,6 +1383,73 @@ ssize_t rreadv(int socket, const struct iovec *iov, int iovcnt) return rrecvv(socket, iov, iovcnt, 0); } @@ -880,7 +877,7 @@ index cc5effe..29b8c01 100644 /* * We overlap sending the data, by posting a small work request immediately, * then increasing the size of the send on each iteration. -@@ -1224,7 +1465,7 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) +@@ -1224,7 +1458,7 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) { struct rsocket *rs; struct ibv_sge sge; @@ -889,7 +886,7 @@ index cc5effe..29b8c01 100644 uint32_t xfer_size, olen = RS_OLAP_START_SIZE; int ret = 0; -@@ -1239,7 +1480,12 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) +@@ -1239,7 +1473,12 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) } fastlock_acquire(&rs->slock); @@ -903,7 +900,7 @@ index cc5effe..29b8c01 100644 if (!rs_can_send(rs)) { ret = rs_get_comp(rs, rs_nonblocking(rs, flags), rs_conn_can_send); -@@ -1289,6 +1535,7 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) +@@ -1289,6 +1528,7 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) if (ret) break; } @@ -911,7 +908,7 @@ index cc5effe..29b8c01 100644 fastlock_release(&rs->slock); return (ret && left == len) ? ret : len - left; -@@ -1345,9 +1592,15 @@ static ssize_t rsendv(int socket, const struct iovec *iov, int iovcnt, int flags +@@ -1345,9 +1585,15 @@ static ssize_t rsendv(int socket, const struct iovec *iov, int iovcnt, int flags len = iov[0].iov_len; for (i = 1; i < iovcnt; i++) len += iov[i].iov_len; @@ -928,7 +925,7 @@ index cc5effe..29b8c01 100644 if (!rs_can_send(rs)) { ret = rs_get_comp(rs, rs_nonblocking(rs, flags), rs_conn_can_send); -@@ -1395,6 +1648,7 @@ static ssize_t rsendv(int socket, const struct iovec *iov, int iovcnt, int flags +@@ -1395,6 +1641,7 @@ static ssize_t rsendv(int socket, const struct iovec *iov, int iovcnt, int flags if (ret) break; } @@ -936,7 +933,7 @@ index cc5effe..29b8c01 100644 fastlock_release(&rs->slock); return (ret && left == len) ? ret : len - left; -@@ -1725,8 +1979,8 @@ int rshutdown(int socket, int how) +@@ -1725,8 +1972,8 @@ int rshutdown(int socket, int how) if ((rs->state & rs_connected) && rs->ctrl_avail) { rs->ctrl_avail--; @@ -947,7 +944,7 @@ index cc5effe..29b8c01 100644 } } -@@ -1814,6 +2068,8 @@ int rsetsockopt(int socket, int level, int optname, +@@ -1814,6 +2061,8 @@ int rsetsockopt(int socket, int level, int optname, case SO_SNDBUF: if (!rs->sbuf) rs->sbuf_size = (*(uint32_t *) optval) << 1; @@ -956,7 +953,7 @@ index cc5effe..29b8c01 100644 ret = 0; break; case SO_LINGER: -@@ -1878,6 +2134,10 @@ int rsetsockopt(int socket, int level, int optname, +@@ -1878,6 +2127,10 @@ int rsetsockopt(int socket, int level, int optname, if (rs->sq_inline < RS_MIN_INLINE) rs->sq_inline = RS_MIN_INLINE; break; @@ -967,7 +964,7 @@ index cc5effe..29b8c01 100644 default: break; } -@@ -1979,6 +2239,10 @@ int rgetsockopt(int socket, int level, int optname, +@@ -1979,6 +2232,10 @@ int rgetsockopt(int socket, int level, int optname, *((int *) optval) = rs->sq_inline; *optlen = sizeof(int); break; @@ -978,7 +975,7 @@ index cc5effe..29b8c01 100644 default: ret = ENOTSUP; break; -@@ -2020,3 +2284,201 @@ int rfcntl(int socket, int cmd, ... /* arg */ ) +@@ -2020,3 +2277,201 @@ int rfcntl(int socket, int cmd, ... /* arg */ ) va_end(args); return ret; } -- 2.46.0