Version: 1
-Previous: 4626931a20bc38c48092fe13c8de7b4027046151
-Head: d08af58ea83fc93f141e7e8fbb654e4638079170
+Previous: f1a0ff0becff2ec822141a84b4326834b11aa53e
+Head: dba947639507d8a3785be40353f216d62265cd29
Applied:
deam: 15fcbd5198ba0c15ab4e8fddcdba32c8ef45faf8
braces: 5fb48c1b8d722b60332f83ca4c8b92b2a7e456a6
- counters: 9735481665a1150e7dac95bff06148120dc539a5
- refresh-temp: d08af58ea83fc93f141e7e8fbb654e4638079170
+ counters: dba947639507d8a3785be40353f216d62265cd29
Unapplied:
acm1.0.5: 1b225173756cfcec4d81d26b1160ebae7644261b
name2ip: 8e00708e882239292492e13aa51c82042255933c
Bottom: fad6610d1d2786b12bafb5cd923f53cfb674ebdb
-Top: fad6610d1d2786b12bafb5cd923f53cfb674ebdb
+Top: 1b26eded9caf73f86edaf805711f031f86f8a82c
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2011-06-27 10:29:36 -0700
---
-
+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");
+++ /dev/null
-Bottom: fad6610d1d2786b12bafb5cd923f53cfb674ebdb
-Top: 1b26eded9caf73f86edaf805711f031f86f8a82c
-Author: Sean Hefty <sean.hefty@intel.com>
-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");