From: Sean Hefty Date: Tue, 28 Jun 2011 05:25:28 +0000 (-0700) Subject: refresh (create temporary patch) X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=ec6323144e8070e960a0fb33f54a04d136fbb353;p=~shefty%2Fibacm.git refresh (create temporary patch) --- diff --git a/meta b/meta index d77eb9b..8e4e210 100644 --- a/meta +++ b/meta @@ -1,10 +1,11 @@ Version: 1 -Previous: 1d48fed53817b78a204363b566b8efb0a9d49e45 -Head: 9735481665a1150e7dac95bff06148120dc539a5 +Previous: 4626931a20bc38c48092fe13c8de7b4027046151 +Head: d08af58ea83fc93f141e7e8fbb654e4638079170 Applied: deam: 15fcbd5198ba0c15ab4e8fddcdba32c8ef45faf8 braces: 5fb48c1b8d722b60332f83ca4c8b92b2a7e456a6 counters: 9735481665a1150e7dac95bff06148120dc539a5 + refresh-temp: d08af58ea83fc93f141e7e8fbb654e4638079170 Unapplied: acm1.0.5: 1b225173756cfcec4d81d26b1160ebae7644261b name2ip: 8e00708e882239292492e13aa51c82042255933c diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 0000000..bfc54ed --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,124 @@ +Bottom: fad6610d1d2786b12bafb5cd923f53cfb674ebdb +Top: 1b26eded9caf73f86edaf805711f031f86f8a82c +Author: Sean Hefty +Date: 2011-06-27 22:25:28 -0700 + +Refresh of counters + +--- + +diff --git a/src/acm.c b/src/acm.c +index 8b01adb..1380124 100644 +--- a/src/acm.c ++++ b/src/acm.c +@@ -60,6 +60,16 @@ enum acm_state { + ACM_READY + }; + ++enum { ++ ACM_CNTR_ERROR, ++ ACM_CNTR_REQUEST, ++ ACM_CNTR_ADDR_CACHE, ++ ACM_CNTR_ADDR_QUERY, ++ ACM_CNTR_ROUTE_CACHE, ++ ACM_CNTR_ROUTE_QUERY, ++ ACM_MAX_COUNTER ++}; ++ + enum acm_addr_prot { + ACM_ADDR_PROT_ACM + }; +@@ -194,7 +204,11 @@ static struct acm_client client[FD_SETSIZE - 1]; + static FILE *flog; + static lock_t log_lock; + PER_THREAD char log_data[ACM_MAX_ADDRESS]; ++static atomic_t counter[ACM_MAX_COUNTER]; + ++/* ++ * Service options - may be set through acm_opts file. ++ */ + static char *opts_file = "/etc/ibacm/acm_opts.cfg"; + static char *addr_file = "/etc/ibacm/acm_addr.cfg"; + static char log_file[128] = "/var/log/ibacm.log"; +@@ -893,6 +907,7 @@ static uint8_t acm_resolve_path(struct acm_ep *ep, struct acm_dest *dest, + memcpy(mad->data, &dest->path, sizeof(dest->path)); + mad->comp_mask = acm_path_comp_mask(&dest->path); + ++ atomic_inc(&counter[ACM_CNTR_ROUTE_QUERY]); + dest->state = ACM_QUERY_ROUTE; + acm_post_send(&ep->sa_queue, msg); + return ACM_STATUS_SUCCESS; +@@ -1848,6 +1863,7 @@ acm_svr_query_path(struct acm_client *client, struct acm_resolve_msg *msg) + memcpy(mad->data, &msg->data[0].info.path, sizeof(struct ibv_path_record)); + mad->comp_mask = acm_path_comp_mask(&msg->data[0].info.path); + ++ atomic_inc(&counter[ACM_CNTR_ROUTE_QUERY]); + acm_post_send(&ep->sa_queue, sa_msg); + return ACM_STATUS_SUCCESS; + +@@ -1896,6 +1912,7 @@ acm_send_resolve(struct acm_ep *ep, struct acm_dest *dest, + for (i = 0; i < ep->mc_cnt; i++) + memcpy(&rec->gid[i], ep->mc_dest[i].address, 16); + ++ atomic_inc(&counter[ACM_CNTR_ADDR_QUERY]); + acm_post_send(&ep->resolve_queue, msg); + return 0; + } +@@ -2082,10 +2099,12 @@ acm_svr_resolve(struct acm_client *client, struct acm_resolve_msg *msg) + switch (dest->state) { + case ACM_READY: + acm_log(2, "request satisfied from local cache\n"); ++ atomic_inc(&counter[ACM_CNTR_ROUTE_CACHE]); + status = ACM_STATUS_SUCCESS; + break; + case ACM_ADDR_RESOLVED: + acm_log(2, "have address, resolving route\n"); ++ atomic_inc(&counter[ACM_CNTR_ADDR_CACHE]); + status = acm_resolve_path(ep, dest, acm_dest_sa_resp); + if (status) { + break; +@@ -2175,6 +2194,7 @@ acm_svr_resolve_path(struct acm_client *client, struct acm_resolve_msg *msg) + switch (dest->state) { + case ACM_READY: + acm_log(2, "request satisfied from local cache\n"); ++ atomic_inc(&counter[ACM_CNTR_ROUTE_CACHE]); + status = ACM_STATUS_SUCCESS; + break; + case ACM_INIT: +@@ -2223,6 +2243,7 @@ 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; +@@ -2577,9 +2598,6 @@ acm_alloc_ep(struct acm_port *port, uint16_t pkey, uint16_t pkey_index) + DListInit(&ep->wait_queue); + lock_init(&ep->lock); + +- for (i = 0; i < MAX_EP_MC; i++) +- acm_init_dest(&ep->mc_dest[i], ACM_ADDRESS_GID, NULL, 0); +- + return ep; + } + +@@ -3080,7 +3098,7 @@ static void show_usage(char *program) + + int CDECL_FUNC main(int argc, char **argv) + { +- int op, daemon = 1; ++ int i, op, daemon = 1; + + while ((op = getopt(argc, argv, "DA:O:")) != -1) { + switch (op) { +@@ -3120,6 +3138,9 @@ int CDECL_FUNC main(int argc, char **argv) + DListInit(&dev_list); + DListInit(&timeout_list); + event_init(&timeout_event); ++ for (i = 0; i < ACM_MAX_COUNTER; i++) ++ atomic_init(&counter[i]); ++ + umad_init(); + if (acm_open_devices()) { + acm_log(0, "ERROR - unable to open any devices\n");