From 73b10281f7b4b1eaeb18fd1ca9d4094b023b5bc2 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Mon, 27 Jun 2011 22:46:45 -0700 Subject: [PATCH] refresh (create temporary patch) --- meta | 5 +- patches/refresh-temp | 117 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 patches/refresh-temp diff --git a/meta b/meta index 0dc3837..250eaa1 100644 --- a/meta +++ b/meta @@ -1,10 +1,11 @@ Version: 1 -Previous: f1a0ff0becff2ec822141a84b4326834b11aa53e -Head: dba947639507d8a3785be40353f216d62265cd29 +Previous: d0ecf01593f575f707df21654e0133943947f37c +Head: 945e3adb556bee02203df22e2cadc4c38bb28d61 Applied: deam: 15fcbd5198ba0c15ab4e8fddcdba32c8ef45faf8 braces: 5fb48c1b8d722b60332f83ca4c8b92b2a7e456a6 counters: dba947639507d8a3785be40353f216d62265cd29 + refresh-temp: 945e3adb556bee02203df22e2cadc4c38bb28d61 Unapplied: acm1.0.5: 1b225173756cfcec4d81d26b1160ebae7644261b name2ip: 8e00708e882239292492e13aa51c82042255933c diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 0000000..c9b3d67 --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,117 @@ +Bottom: 1b26eded9caf73f86edaf805711f031f86f8a82c +Top: 590da5d69e0758287825bf4e7f25cfd32e149041 +Author: Sean Hefty +Date: 2011-06-27 22:46:45 -0700 + +Refresh of counters + +--- + +diff --git a/include/infiniband/acm.h b/include/infiniband/acm.h +index 143d512..7f55b47 100644 +--- a/include/infiniband/acm.h ++++ b/include/infiniband/acm.h +@@ -37,6 +37,7 @@ + + #define ACM_OP_MASK 0x0F + #define ACM_OP_RESOLVE 0x01 ++#define ACM_OP_PERF_QUERY 0x02 + #define ACM_OP_ACK 0x80 + + #define ACM_STATUS_SUCCESS 0 +@@ -97,6 +98,11 @@ struct acm_resolve_msg { + struct acm_ep_addr_data data[0]; + }; + ++struct acm_perf_msg { ++ struct acm_hdr hdr; ++ uint64_t data[0]; ++}; ++ + struct acm_msg { + struct acm_hdr hdr; + uint8_t data[ACM_MSG_DATA_LENGTH]; +diff --git a/src/acm.c b/src/acm.c +index 1380124..679af44 100644 +--- a/src/acm.c ++++ b/src/acm.c +@@ -62,7 +62,7 @@ enum acm_state { + + enum { + ACM_CNTR_ERROR, +- ACM_CNTR_REQUEST, ++ ACM_CNTR_RESOLVE, + ACM_CNTR_ADDR_CACHE, + ACM_CNTR_ADDR_QUERY, + ACM_CNTR_ROUTE_CACHE, +@@ -2055,7 +2055,7 @@ acm_svr_queue_req(struct acm_dest *dest, struct acm_client *client, + } + + static int +-acm_svr_resolve(struct acm_client *client, struct acm_resolve_msg *msg) ++acm_svr_resolve_dest(struct acm_client *client, struct acm_resolve_msg *msg) + { + struct acm_ep *ep; + struct acm_dest *dest; +@@ -2229,6 +2229,25 @@ put: + return ret; + } + ++static int acm_svr_resolve(struct acm_client *client, struct acm_resolve_msg *msg) ++{ ++ if (msg->data[0].type == ACM_EP_INFO_PATH) { ++ if (msg->data[0].flags & ACM_FLAGS_QUERY_SA) { ++ return acm_svr_query_path(client, msg); ++ } else { ++ return acm_svr_resolve_path(client, msg); ++ } ++ } else { ++ return acm_svr_resolve_dest(client, msg); ++ } ++} ++ ++static int acm_svr_perf_query(struct acm_client *client, struct acm_perf_msg *msg) ++{ ++ /* TODO: return perf counters */ ++ return 0; ++} ++ + static void acm_svr_receive(struct acm_client *client) + { + struct acm_msg msg; +@@ -2243,25 +2262,22 @@ static void acm_svr_receive(struct acm_client *client) + goto out; + } + +- atomic_inc(&counter[ACM_CNTR_REQUEST]); + if (msg.hdr.version != ACM_VERSION) { + acm_log(0, "ERROR - unsupported version %d\n", msg.hdr.version); + goto out; + } + +- if ((msg.hdr.opcode & ACM_OP_MASK) != ACM_OP_RESOLVE) { ++ switch (msg.hdr.opcode & ACM_OP_MASK) { ++ case ACM_OP_RESOLVE: ++ atomic_inc(&counter[ACM_CNTR_RESOLVE]); ++ ret = acm_svr_resolve(client, (struct acm_resolve_msg *) &msg); ++ break; ++ case ACM_OP_PERF_QUERY: ++ ret = acm_svr_perf_query(client, (struct acm_perf_msg *) &msg); ++ break; ++ default: + acm_log(0, "ERROR - unknown opcode 0x%x\n", msg.hdr.opcode); +- goto out; +- } +- +- if (resolve_msg->data[0].type == ACM_EP_INFO_PATH) { +- if (resolve_msg->data[0].flags & ACM_FLAGS_QUERY_SA) { +- ret = acm_svr_query_path(client, resolve_msg); +- } else { +- ret = acm_svr_resolve_path(client, resolve_msg); +- } +- } else { +- ret = acm_svr_resolve(client, resolve_msg); ++ break; + } + + out: -- 2.41.0