]> git.openfabrics.org - ~shefty/ibacm.git/commitdiff
refresh (create temporary patch)
authorSean Hefty <sean.hefty@intel.com>
Tue, 28 Jun 2011 05:25:28 +0000 (22:25 -0700)
committerSean Hefty <sean.hefty@intel.com>
Tue, 28 Jun 2011 05:25:28 +0000 (22:25 -0700)
meta
patches/refresh-temp [new file with mode: 0644]

diff --git a/meta b/meta
index d77eb9b310a9320bbf1bc33ff7caf88431c3992d..8e4e210e9690836ef0cfb0d09155f74ec2a5ab27 100644 (file)
--- 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 (file)
index 0000000..bfc54ed
--- /dev/null
@@ -0,0 +1,124 @@
+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");