]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
refresh
authorSean Hefty <sean.hefty@intel.com>
Wed, 19 Dec 2012 23:27:22 +0000 (15:27 -0800)
committerSean Hefty <sean.hefty@intel.com>
Wed, 19 Dec 2012 23:27:22 +0000 (15:27 -0800)
meta
patches/dsocket
patches/refresh-temp [deleted file]

diff --git a/meta b/meta
index b7c5c1c0f8b79b81a0b71464bac6c3c5864df8c2..2d36054d4f686f8654bf245144b4b4ad2009ceff 100644 (file)
--- a/meta
+++ b/meta
@@ -1,9 +1,8 @@
 Version: 1
-Previous: 76126a910a4b559d158b9b448d195546a5d6dc3a
-Head: 7f4f86d0efa766d23f2979cc75d5ec3e185d97bc
+Previous: a079607dbf4355b066f099878de0ee7e414cf294
+Head: e6e93ed4231976eeab707b31e283be0a7acff6db
 Applied:
-  dsocket: 1dfcf482516208ea9c84bcb9f13054553213c82c
-  refresh-temp: 7f4f86d0efa766d23f2979cc75d5ec3e185d97bc
+  dsocket: e6e93ed4231976eeab707b31e283be0a7acff6db
 Unapplied:
   udpong: ecf6d20467feb7aec39bcf77bfc8795186290eb1
   test-udp: f6c78ad2a26f452cf166aff1baa7b76160bd8bf7
index b2c70a1abee32b0bfb999c160d3b42e2ffee124a..b71e83fbf87a13c861d23fbda06e44a4fcc6b1f3 100644 (file)
@@ -1,5 +1,5 @@
 Bottom: 1fa07c62817ac4b6cb8d9c5e327ea2cdc75dbd21
-Top:    719db85186f7ed857546278db44ac37a1e6e8dee
+Top:    2a1d1a24a767c8fd0bc9fda9532541008404ecc6
 Author: Sean Hefty <sean.hefty@intel.com>
 Date:   2012-11-09 10:26:38 -0800
 
@@ -200,7 +200,7 @@ index 0a0370e..7135a61 100644
  {
        errno = err;
 diff --git a/src/rsocket.c b/src/rsocket.c
-index a060f66..0111836 100644
+index a060f66..7be42ca 100644
 --- a/src/rsocket.c
 +++ b/src/rsocket.c
 @@ -47,6 +47,8 @@
@@ -720,7 +720,7 @@ index a060f66..0111836 100644
  
        rs->rmr = rdma_reg_write(rs->cm_id, rs->rbuf, rs->rbuf_size);
        if (!rs->rmr)
-@@ -440,37 +681,59 @@ static int rs_init_bufs(struct rsocket *rs)
+@@ -440,37 +681,61 @@ static int rs_init_bufs(struct rsocket *rs)
        return 0;
  }
  
@@ -744,6 +744,11 @@ index a060f66..0111836 100644
 +      return 0;
 +}
 +
++/*
++ * If a user is waiting on a datagram rsocket through poll or select, then
++ * we need the first completion to generate an event on the related epoll fd
++ * in order to signal the user.  We arm the CQ on creation for this purpose
++ */
 +static int rs_create_cq(struct rsocket *rs, struct rdma_cm_id *cm_id)
  {
 -      rs->cm_id->recv_cq_channel = ibv_create_comp_channel(rs->cm_id->verbs);
@@ -765,13 +770,10 @@ index a060f66..0111836 100644
 +              if (fcntl(cm_id->recv_cq_channel->fd, F_SETFL, O_NONBLOCK))
                        goto err2;
        }
-+      //***
-+      //else {
-+              ibv_req_notify_cq(cm_id->recv_cq, 0);
-+      //}
  
 -      rs->cm_id->send_cq_channel = rs->cm_id->recv_cq_channel;
 -      rs->cm_id->send_cq = rs->cm_id->recv_cq;
++      ibv_req_notify_cq(cm_id->recv_cq, 0);
 +      cm_id->send_cq_channel = cm_id->recv_cq_channel;
 +      cm_id->send_cq = cm_id->recv_cq;
        return 0;
@@ -795,7 +797,7 @@ index a060f66..0111836 100644
  {
        struct ibv_recv_wr wr, *bad;
  
-@@ -482,6 +745,26 @@ rs_post_recv(struct rsocket *rs)
+@@ -482,6 +747,26 @@ rs_post_recv(struct rsocket *rs)
        return rdma_seterrno(ibv_post_recv(rs->cm_id->qp, &wr, &bad));
  }
  
@@ -822,7 +824,7 @@ index a060f66..0111836 100644
  static int rs_create_ep(struct rsocket *rs)
  {
        struct ibv_qp_init_attr qp_attr;
-@@ -492,7 +775,7 @@ static int rs_create_ep(struct rsocket *rs)
+@@ -492,7 +777,7 @@ static int rs_create_ep(struct rsocket *rs)
        if (ret)
                return ret;
  
@@ -831,7 +833,7 @@ index a060f66..0111836 100644
        if (ret)
                return ret;
  
-@@ -549,8 +832,70 @@ static void rs_free_iomappings(struct rsocket *rs)
+@@ -549,8 +834,70 @@ static void rs_free_iomappings(struct rsocket *rs)
        }
  }
  
@@ -902,7 +904,7 @@ index a060f66..0111836 100644
        if (rs->index >= 0)
                rs_remove(rs);
  
-@@ -582,7 +927,7 @@ static void rs_free(struct rsocket *rs)
+@@ -582,7 +929,7 @@ static void rs_free(struct rsocket *rs)
                rdma_destroy_id(rs->cm_id);
        }
  
@@ -911,7 +913,7 @@ index a060f66..0111836 100644
        fastlock_destroy(&rs->cq_wait_lock);
        fastlock_destroy(&rs->cq_lock);
        fastlock_destroy(&rs->rlock);
-@@ -636,29 +981,88 @@ static void rs_save_conn_data(struct rsocket *rs, struct rs_conn_data *conn)
+@@ -636,29 +983,88 @@ static void rs_save_conn_data(struct rsocket *rs, struct rs_conn_data *conn)
        rs->sseq_comp = ntohs(conn->credits);
  }
  
@@ -988,15 +990,15 @@ index a060f66..0111836 100644
 +              ret = rdma_create_id(NULL, &rs->cm_id, rs, RDMA_PS_TCP);
 +              if (ret)
 +                      goto err;
-+
+-      ret = rs_insert(rs);
 +              rs->cm_id->route.addr.src_addr.sa_family = domain;
 +              index = rs->cm_id->channel->fd;
 +      } else {
 +              ret = ds_init(rs, domain);
 +              if (ret)
 +                      goto err;
--      ret = rs_insert(rs);
++
 +              index = rs->udp_sock;
 +      }
 +
@@ -1008,7 +1010,7 @@ index a060f66..0111836 100644
        return rs->index;
  
  err:
-@@ -672,9 +1076,18 @@ int rbind(int socket, const struct sockaddr *addr, socklen_t addrlen)
+@@ -672,9 +1078,18 @@ int rbind(int socket, const struct sockaddr *addr, socklen_t addrlen)
        int ret;
  
        rs = idm_at(&idm, socket);
@@ -1030,7 +1032,7 @@ index a060f66..0111836 100644
        return ret;
  }
  
-@@ -710,7 +1123,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen)
+@@ -710,7 +1125,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen)
        int ret;
  
        rs = idm_at(&idm, socket);
@@ -1039,7 +1041,7 @@ index a060f66..0111836 100644
        if (!new_rs)
                return ERR(ENOMEM);
  
-@@ -718,7 +1131,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen)
+@@ -718,7 +1133,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen)
        if (ret)
                goto err;
  
@@ -1048,7 +1050,7 @@ index a060f66..0111836 100644
        if (ret < 0)
                goto err;
  
-@@ -729,7 +1142,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen)
+@@ -729,7 +1144,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen)
        }
  
        if (rs->fd_flags & O_NONBLOCK)
@@ -1057,7 +1059,7 @@ index a060f66..0111836 100644
  
        ret = rs_create_ep(new_rs);
        if (ret)
-@@ -831,7 +1244,7 @@ connected:
+@@ -831,7 +1246,7 @@ connected:
                break;
        case rs_accepting:
                if (!(rs->fd_flags & O_NONBLOCK))
@@ -1066,7 +1068,7 @@ index a060f66..0111836 100644
  
                ret = ucma_complete(rs->cm_id);
                if (ret)
-@@ -855,13 +1268,240 @@ connected:
+@@ -855,13 +1270,240 @@ connected:
        return ret;
  }
  
@@ -1309,7 +1311,7 @@ index a060f66..0111836 100644
  }
  
  static int rs_post_write_msg(struct rsocket *rs,
-@@ -903,6 +1543,24 @@ static int rs_post_write(struct rsocket *rs,
+@@ -903,6 +1545,24 @@ static int rs_post_write(struct rsocket *rs,
        return rdma_seterrno(ibv_post_send(rs->cm_id->qp, &wr, &bad));
  }
  
@@ -1334,7 +1336,7 @@ index a060f66..0111836 100644
  /*
   * Update target SGE before sending data.  Otherwise the remote side may
   * update the entry before we do.
-@@ -1046,7 +1704,7 @@ static int rs_poll_cq(struct rsocket *rs)
+@@ -1046,7 +1706,7 @@ static int rs_poll_cq(struct rsocket *rs)
                                        rs->state = rs_disconnected;
                                        return 0;
                                } else if (rs_msg_data(imm_data) == RS_CTRL_SHUTDOWN) {
@@ -1343,7 +1345,7 @@ index a060f66..0111836 100644
                                }
                                break;
                        case RS_OP_WRITE:
-@@ -1133,46 +1791,208 @@ static int rs_get_cq_event(struct rsocket *rs)
+@@ -1133,46 +1793,208 @@ static int rs_get_cq_event(struct rsocket *rs)
   */
  static int rs_process_cq(struct rsocket *rs, int nonblock, int (*test)(struct rsocket *rs))
  {
@@ -1563,7 +1565,7 @@ index a060f66..0111836 100644
                if (!ret || nonblock || errno != EWOULDBLOCK)
                        return ret;
  
-@@ -1184,7 +2004,7 @@ static int rs_get_comp(struct rsocket *rs, int nonblock, int (*test)(struct rsoc
+@@ -1184,7 +2006,7 @@ static int rs_get_comp(struct rsocket *rs, int nonblock, int (*test)(struct rsoc
                            (e.tv_usec - s.tv_usec) + 1;
        } while (poll_time <= polling_time);
  
@@ -1572,7 +1574,7 @@ index a060f66..0111836 100644
        return ret;
  }
  
-@@ -1219,9 +2039,19 @@ static int rs_can_send(struct rsocket *rs)
+@@ -1219,9 +2041,19 @@ static int rs_can_send(struct rsocket *rs)
               (rs->target_sgl[rs->target_sge].length != 0);
  }
  
@@ -1593,7 +1595,7 @@ index a060f66..0111836 100644
  }
  
  static int rs_conn_can_send_ctrl(struct rsocket *rs)
-@@ -1236,7 +2066,7 @@ static int rs_have_rdata(struct rsocket *rs)
+@@ -1236,7 +2068,7 @@ static int rs_have_rdata(struct rsocket *rs)
  
  static int rs_conn_have_rdata(struct rsocket *rs)
  {
@@ -1602,7 +1604,7 @@ index a060f66..0111836 100644
  }
  
  static int rs_conn_all_sends_done(struct rsocket *rs)
-@@ -1245,6 +2075,67 @@ static int rs_conn_all_sends_done(struct rsocket *rs)
+@@ -1245,6 +2077,67 @@ static int rs_conn_all_sends_done(struct rsocket *rs)
               !(rs->state & rs_connected);
  }
  
@@ -1670,7 +1672,7 @@ index a060f66..0111836 100644
  static ssize_t rs_peek(struct rsocket *rs, void *buf, size_t len)
  {
        size_t left = len;
-@@ -1290,6 +2181,13 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags)
+@@ -1290,6 +2183,13 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags)
        int ret;
  
        rs = idm_at(&idm, socket);
@@ -1684,7 +1686,7 @@ index a060f66..0111836 100644
        if (rs->state & rs_opening) {
                ret = rs_do_connect(rs);
                if (ret) {
-@@ -1339,7 +2237,7 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags)
+@@ -1339,7 +2239,7 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags)
                        rs->rbuf_bytes_avail += rsize;
                }
  
@@ -1693,7 +1695,7 @@ index a060f66..0111836 100644
  
        fastlock_release(&rs->rlock);
        return ret ? ret : len - left;
-@@ -1348,8 +2246,17 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags)
+@@ -1348,8 +2248,17 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags)
  ssize_t rrecvfrom(int socket, void *buf, size_t len, int flags,
                  struct sockaddr *src_addr, socklen_t *addrlen)
  {
@@ -1711,7 +1713,7 @@ index a060f66..0111836 100644
        ret = rrecv(socket, buf, len, flags);
        if (ret > 0 && src_addr)
                rgetpeername(socket, src_addr, addrlen);
-@@ -1391,14 +2298,14 @@ static int rs_send_iomaps(struct rsocket *rs, int flags)
+@@ -1391,14 +2300,14 @@ static int rs_send_iomaps(struct rsocket *rs, int flags)
        struct rs_iomap iom;
        int ret;
  
@@ -1728,7 +1730,7 @@ index a060f66..0111836 100644
                                ret = ERR(ECONNRESET);
                                break;
                        }
-@@ -1447,10 +2354,92 @@ static int rs_send_iomaps(struct rsocket *rs, int flags)
+@@ -1447,10 +2356,92 @@ static int rs_send_iomaps(struct rsocket *rs, int flags)
        }
  
        rs->iomap_pending = !dlist_empty(&rs->iomap_queue);
@@ -1822,7 +1824,7 @@ index a060f66..0111836 100644
  /*
   * We overlap sending the data, by posting a small work request immediately,
   * then increasing the size of the send on each iteration.
-@@ -1464,6 +2453,13 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags)
+@@ -1464,6 +2455,13 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags)
        int ret = 0;
  
        rs = idm_at(&idm, socket);
@@ -1836,7 +1838,7 @@ index a060f66..0111836 100644
        if (rs->state & rs_opening) {
                ret = rs_do_connect(rs);
                if (ret) {
-@@ -1485,7 +2481,7 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags)
+@@ -1485,7 +2483,7 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags)
                                          rs_conn_can_send);
                        if (ret)
                                break;
@@ -1845,7 +1847,7 @@ index a060f66..0111836 100644
                                ret = ERR(ECONNRESET);
                                break;
                        }
-@@ -1538,10 +2534,34 @@ out:
+@@ -1538,10 +2536,34 @@ out:
  ssize_t rsendto(int socket, const void *buf, size_t len, int flags,
                const struct sockaddr *dest_addr, socklen_t addrlen)
  {
@@ -1883,7 +1885,7 @@ index a060f66..0111836 100644
  }
  
  static void rs_copy_iov(void *dst, const struct iovec **iov, size_t *offset, size_t len)
-@@ -1600,7 +2620,7 @@ static ssize_t rsendv(int socket, const struct iovec *iov, int iovcnt, int flags
+@@ -1600,7 +2622,7 @@ static ssize_t rsendv(int socket, const struct iovec *iov, int iovcnt, int flags
                                          rs_conn_can_send);
                        if (ret)
                                break;
@@ -1892,7 +1894,7 @@ index a060f66..0111836 100644
                                ret = ERR(ECONNRESET);
                                break;
                        }
-@@ -1653,7 +2673,7 @@ ssize_t rsendmsg(int socket, const struct msghdr *msg, int flags)
+@@ -1653,7 +2675,7 @@ ssize_t rsendmsg(int socket, const struct msghdr *msg, int flags)
        if (msg->msg_control && msg->msg_controllen)
                return ERR(ENOTSUP);
  
@@ -1901,7 +1903,7 @@ index a060f66..0111836 100644
  }
  
  ssize_t rwrite(int socket, const void *buf, size_t count)
-@@ -1690,8 +2710,8 @@ static int rs_poll_rs(struct rsocket *rs, int events,
+@@ -1690,8 +2712,8 @@ static int rs_poll_rs(struct rsocket *rs, int events,
        int ret;
  
  check_cq:
@@ -1912,7 +1914,7 @@ index a060f66..0111836 100644
                rs_process_cq(rs, nonblock, test);
  
                revents = 0;
-@@ -1707,6 +2727,16 @@ check_cq:
+@@ -1707,6 +2729,16 @@ check_cq:
                }
  
                return revents;
@@ -1929,7 +1931,7 @@ index a060f66..0111836 100644
        }
  
        if (rs->state == rs_listening) {
-@@ -1766,18 +2796,20 @@ static int rs_poll_arm(struct pollfd *rfds, struct pollfd *fds, nfds_t nfds)
+@@ -1766,18 +2798,20 @@ static int rs_poll_arm(struct pollfd *rfds, struct pollfd *fds, nfds_t nfds)
                        if (fds[i].revents)
                                return 1;
  
@@ -1956,7 +1958,7 @@ index a060f66..0111836 100644
        }
        return 0;
  }
-@@ -1793,7 +2825,10 @@ static int rs_poll_events(struct pollfd *rfds, struct pollfd *fds, nfds_t nfds)
+@@ -1793,7 +2827,10 @@ static int rs_poll_events(struct pollfd *rfds, struct pollfd *fds, nfds_t nfds)
  
                rs = idm_lookup(&idm, fds[i].fd);
                if (rs) {
@@ -1968,7 +1970,7 @@ index a060f66..0111836 100644
                        fds[i].revents = rs_poll_rs(rs, fds[i].events, 1, rs_poll_all);
                } else {
                        fds[i].revents = rfds[i].revents;
-@@ -1949,7 +2984,7 @@ int rshutdown(int socket, int how)
+@@ -1949,7 +2986,7 @@ int rshutdown(int socket, int how)
  
        rs = idm_at(&idm, socket);
        if (how == SHUT_RD) {
@@ -1977,7 +1979,7 @@ index a060f66..0111836 100644
                return 0;
        }
  
-@@ -1959,10 +2994,10 @@ int rshutdown(int socket, int how)
+@@ -1959,10 +2996,10 @@ int rshutdown(int socket, int how)
        if (rs->state & rs_connected) {
                if (how == SHUT_RDWR) {
                        ctrl = RS_CTRL_DISCONNECT;
@@ -1991,7 +1993,7 @@ index a060f66..0111836 100644
                                RS_CTRL_SHUTDOWN : RS_CTRL_DISCONNECT;
                }
                if (!rs->ctrl_avail) {
-@@ -1987,13 +3022,32 @@ int rshutdown(int socket, int how)
+@@ -1987,13 +3024,32 @@ int rshutdown(int socket, int how)
        return 0;
  }
  
@@ -2026,7 +2028,7 @@ index a060f66..0111836 100644
  
        rs_free(rs);
        return 0;
-@@ -2018,8 +3072,12 @@ int rgetpeername(int socket, struct sockaddr *addr, socklen_t *addrlen)
+@@ -2018,8 +3074,12 @@ int rgetpeername(int socket, struct sockaddr *addr, socklen_t *addrlen)
        struct rsocket *rs;
  
        rs = idm_at(&idm, socket);
@@ -2041,7 +2043,7 @@ index a060f66..0111836 100644
  }
  
  int rgetsockname(int socket, struct sockaddr *addr, socklen_t *addrlen)
-@@ -2027,8 +3085,12 @@ int rgetsockname(int socket, struct sockaddr *addr, socklen_t *addrlen)
+@@ -2027,8 +3087,12 @@ int rgetsockname(int socket, struct sockaddr *addr, socklen_t *addrlen)
        struct rsocket *rs;
  
        rs = idm_at(&idm, socket);
@@ -2056,7 +2058,7 @@ index a060f66..0111836 100644
  }
  
  int rsetsockopt(int socket, int level, int optname,
-@@ -2040,22 +3102,31 @@ int rsetsockopt(int socket, int level, int optname,
+@@ -2040,22 +3104,31 @@ int rsetsockopt(int socket, int level, int optname,
  
        ret = ERR(ENOTSUP);
        rs = idm_at(&idm, socket);
@@ -2096,7 +2098,7 @@ index a060f66..0111836 100644
                                rs->rbuf_size = (*(uint32_t *) optval) << 1;
                        ret = 0;
                        break;
-@@ -2101,9 +3172,11 @@ int rsetsockopt(int socket, int level, int optname,
+@@ -2101,9 +3174,11 @@ int rsetsockopt(int socket, int level, int optname,
                opts = &rs->ipv6_opts;
                switch (optname) {
                case IPV6_V6ONLY:
@@ -2111,7 +2113,7 @@ index a060f66..0111836 100644
                        opt_on = *(int *) optval;
                        break;
                default:
-@@ -2315,7 +3388,7 @@ off_t riomap(int socket, void *buf, size_t len, int prot, int flags, off_t offse
+@@ -2315,7 +3390,7 @@ off_t riomap(int socket, void *buf, size_t len, int prot, int flags, off_t offse
        if (!rs->cm_id->pd || (prot & ~(PROT_WRITE | PROT_NONE)))
                return ERR(EINVAL);
  
@@ -2120,7 +2122,7 @@ index a060f66..0111836 100644
        if (prot & PROT_WRITE) {
                iomr = rs_get_iomap_mr(rs);
                access |= IBV_ACCESS_REMOTE_WRITE;
-@@ -2349,7 +3422,7 @@ off_t riomap(int socket, void *buf, size_t len, int prot, int flags, off_t offse
+@@ -2349,7 +3424,7 @@ off_t riomap(int socket, void *buf, size_t len, int prot, int flags, off_t offse
                dlist_insert_tail(&iomr->entry, &rs->iomap_list);
        }
  out:
@@ -2129,7 +2131,7 @@ index a060f66..0111836 100644
        return offset;
  }
  
-@@ -2361,7 +3434,7 @@ int riounmap(int socket, void *buf, size_t len)
+@@ -2361,7 +3436,7 @@ int riounmap(int socket, void *buf, size_t len)
        int ret = 0;
  
        rs = idm_at(&idm, socket);
@@ -2138,7 +2140,7 @@ index a060f66..0111836 100644
  
        for (entry = rs->iomap_list.next; entry != &rs->iomap_list;
             entry = entry->next) {
-@@ -2382,7 +3455,7 @@ int riounmap(int socket, void *buf, size_t len)
+@@ -2382,7 +3457,7 @@ int riounmap(int socket, void *buf, size_t len)
        }
        ret = ERR(EINVAL);
  out:
@@ -2147,7 +2149,7 @@ index a060f66..0111836 100644
        return ret;
  }
  
-@@ -2426,7 +3499,7 @@ size_t riowrite(int socket, const void *buf, size_t count, off_t offset, int fla
+@@ -2426,7 +3501,7 @@ size_t riowrite(int socket, const void *buf, size_t count, off_t offset, int fla
                                          rs_conn_can_send);
                        if (ret)
                                break;
@@ -2156,7 +2158,7 @@ index a060f66..0111836 100644
                                ret = ERR(ECONNRESET);
                                break;
                        }
-@@ -2476,3 +3549,272 @@ out:
+@@ -2476,3 +3551,272 @@ out:
  
        return (ret && left == count) ? ret : count - left;
  }
diff --git a/patches/refresh-temp b/patches/refresh-temp
deleted file mode 100644 (file)
index c481b98..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-Bottom: 719db85186f7ed857546278db44ac37a1e6e8dee
-Top:    2a1d1a24a767c8fd0bc9fda9532541008404ecc6
-Author: Sean Hefty <sean.hefty@intel.com>
-Date:   2012-12-19 15:27:21 -0800
-
-Refresh of dsocket
-
----
-
-diff --git a/src/rsocket.c b/src/rsocket.c
-index 0111836..7be42ca 100644
---- a/src/rsocket.c
-+++ b/src/rsocket.c
-@@ -700,6 +700,11 @@ static int ds_init_bufs(struct ds_qp *qp)
-       return 0;
- }
-+/*
-+ * If a user is waiting on a datagram rsocket through poll or select, then
-+ * we need the first completion to generate an event on the related epoll fd
-+ * in order to signal the user.  We arm the CQ on creation for this purpose
-+ */
- static int rs_create_cq(struct rsocket *rs, struct rdma_cm_id *cm_id)
- {
-       cm_id->recv_cq_channel = ibv_create_comp_channel(cm_id->verbs);
-@@ -715,11 +720,8 @@ static int rs_create_cq(struct rsocket *rs, struct rdma_cm_id *cm_id)
-               if (fcntl(cm_id->recv_cq_channel->fd, F_SETFL, O_NONBLOCK))
-                       goto err2;
-       }
--      //***
--      //else {
--              ibv_req_notify_cq(cm_id->recv_cq, 0);
--      //}
-+      ibv_req_notify_cq(cm_id->recv_cq, 0);
-       cm_id->send_cq_channel = cm_id->recv_cq_channel;
-       cm_id->send_cq = cm_id->recv_cq;
-       return 0;