From 0cf27d07d3201808eab061f2f3e422df5f204531 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Wed, 24 Oct 2012 21:52:53 -0700 Subject: [PATCH] refresh (create temporary patch) --- meta | 5 +- patches/refresh-temp | 160 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 patches/refresh-temp diff --git a/meta b/meta index 37c39d0f..c234c036 100644 --- a/meta +++ b/meta @@ -1,10 +1,11 @@ Version: 1 -Previous: 40ec12d22b7952acc926cd050a28edbde08c1ab7 -Head: 98d1bcef5dd3fb5301d06f50aad458a57df8bc47 +Previous: 1e28db8126df40b12a2e9253b4745afee311c13a +Head: 0ad40ef5705624a49a17a66c1d35b018f777ed06 Applied: rs-iomap: 0841b5f6724681ed1859262c190a4dedf6df37e1 riostream: edef3f821b0265ee07b11e7a881720f72cf35fc8 iom-dbg: 98d1bcef5dd3fb5301d06f50aad458a57df8bc47 + refresh-temp: 0ad40ef5705624a49a17a66c1d35b018f777ed06 Unapplied: resv-rs-len: 7b6ff5c4894f54b221d877adcd709795dffb2fe9 rs-target-sgl: 7a07c80f2242e80c076dcf3ec6bb4c94626b284f diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 00000000..3737512a --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,160 @@ +Bottom: 7892fc37be09e2d70f0c8a5db39f3b31fb97e30c +Top: 585164e896799662f3bcb748351fe37c8a0c9275 +Author: Sean Hefty +Date: 2012-10-24 21:52:53 -0700 + +Refresh of iom-dbg + +--- + +diff --git a/src/rsocket.c b/src/rsocket.c +index f0c4c35..9d973f8 100644 +--- a/src/rsocket.c ++++ b/src/rsocket.c +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -1046,6 +1047,7 @@ static int rs_poll_cq(struct rsocket *rs) + rs->sseq_comp = (uint16_t) rs_msg_data(imm_data); + break; + case RS_OP_IOMAP_SGL: ++ printf("%s - updated iomap %d\n", __func__, rs_msg_data(imm_data)); + /* The iomap was updated, that's nice to know. */ + break; + case RS_OP_CTRL: +@@ -1057,6 +1059,7 @@ static int rs_poll_cq(struct rsocket *rs) + } + break; + case RS_OP_WRITE: ++ printf("%s - write op - BAD\n", __func__); + /* We really shouldn't be here. */ + break; + default: +@@ -1077,6 +1080,7 @@ static int rs_poll_cq(struct rsocket *rs) + rs->state = rs_disconnected; + break; + case RS_OP_IOMAP_SGL: ++ printf("%s - iomap update completed\n", __func__); + rs->sqe_avail++; + rs->sbuf_bytes_avail += sizeof(struct rs_iomap); + break; +@@ -1398,6 +1402,7 @@ static int rs_send_iomaps(struct rsocket *rs, int flags) + struct rs_iomap iom; + int ret; + ++ printf("%s\n", __func__); + fastlock_acquire(&rs->iomap_lock); + while (!dlist_empty(&rs->iomap_queue)) { + if (!rs_can_send(rs)) { +@@ -1454,6 +1459,7 @@ static int rs_send_iomaps(struct rsocket *rs, int flags) + } + + rs->iomap_pending = !dlist_empty(&rs->iomap_queue); ++ printf("%s - pending = %d\n", __func__, rs->iomap_pending); + fastlock_release(&rs->iomap_lock); + return ret; + } +@@ -2290,7 +2296,9 @@ static struct rs_iomap_mr *rs_get_iomap_mr(struct rsocket *rs) + { + int i; + ++ printf("%s\n", __func__); + if (!rs->remote_iomappings) { ++ printf("%s - allocate remote iomappings\n", __func__); + rs->remote_iomappings = calloc(rs->remote_iomap.length, + sizeof(*rs->remote_iomappings)); + if (!rs->remote_iomappings) +@@ -2301,9 +2309,11 @@ static struct rs_iomap_mr *rs_get_iomap_mr(struct rsocket *rs) + } + + for (i = 0; i < rs->remote_iomap.length; i++) { ++ printf("%s - looking for empty slot %d\n", __func__, i); + if (!rs->remote_iomappings[i].mr) + return &rs->remote_iomappings[i]; + } ++ printf("%s - all slots filled\n", __func__); + return NULL; + } + +@@ -2318,15 +2328,22 @@ off_t riomap(int socket, void *buf, size_t len, int prot, int flags, off_t offse + struct rs_iomap_mr *iomr; + int access = IBV_ACCESS_LOCAL_WRITE; + ++ printf("%s\n", __func__); + rs = idm_at(&idm, socket); + if (!rs->cm_id->pd || (prot & ~(PROT_WRITE | PROT_NONE))) ++ { ++ printf("%s - invalid state ((%x) %d prot %d \n", __func__, ++ rs->state, (rs->state != rs_connect_rdwr), (prot & ~(PROT_WRITE | PROT_NONE))); + return ERR(EINVAL); ++ } + + fastlock_acquire(&rs->iomap_lock); + if (prot & PROT_WRITE) { ++ printf("%s - remote mapping\n", __func__); + iomr = rs_get_iomap_mr(rs); + access |= IBV_ACCESS_REMOTE_WRITE; + } else { ++ printf("%s - local mapping\n", __func__); + iomr = calloc(1, sizeof *iomr); + iomr->index = -1; + } +@@ -2345,11 +2362,13 @@ off_t riomap(int socket, void *buf, size_t len, int prot, int flags, off_t offse + + if (offset == -1) + offset = (uintptr_t) buf; ++ printf("%s mapped to offset %lld\n", __func__, offset); + iomr->offset = offset; + atomic_init(&iomr->refcnt); + atomic_set(&iomr->refcnt, 1); + + if (iomr->index >= 0) { ++ printf("%s - map pending\n", __func__); + dlist_insert_tail(&iomr->entry, &rs->iomap_queue); + rs->iomap_pending = 1; + } else { +@@ -2367,6 +2386,7 @@ int riounmap(int socket, void *buf, size_t len) + dlist_entry *entry; + int ret = 0; + ++ printf("%s\n", __func__); + rs = idm_at(&idm, socket); + fastlock_acquire(&rs->iomap_lock); + +@@ -2396,12 +2416,15 @@ out: + static struct rs_iomap *rs_find_iomap(struct rsocket *rs, off_t offset) + { + int i; ++ printf("%s\n", __func__); + + for (i = 0; i < rs->target_iomap_size; i++) { ++ printf("%s - checking target index %d\n", __func__, i); + if (offset >= rs->target_iomap[i].offset && + offset < rs->target_iomap[i].offset + rs->target_iomap[i].sge.length) + return &rs->target_iomap[i]; + } ++ printf("%s - offset not found\n", __func__); + return NULL; + } + +@@ -2414,6 +2437,7 @@ size_t riowrite(int socket, const void *buf, size_t count, off_t offset, int fla + uint32_t xfer_size, olen = RS_OLAP_START_SIZE; + int ret = 0; + ++ printf("%s\n", __func__); + rs = idm_at(&idm, socket); + fastlock_acquire(&rs->slock); + if (rs->iomap_pending) { +@@ -2421,6 +2445,7 @@ size_t riowrite(int socket, const void *buf, size_t count, off_t offset, int fla + if (ret) + goto out; + } ++ printf("%s - initiating RDMA write\n", __func__); + for (; left; left -= xfer_size, buf += xfer_size, offset += xfer_size) { + if (!iom || offset > iom->offset + iom->sge.length) { + iom = rs_find_iomap(rs, offset); -- 2.41.0