+++ /dev/null
-Bottom: 73024cf0fe32007e791c40697c2b40c1e344876e
-Top: e1db328d04a21d68e7647747266a74f267eeefee
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2012-10-08 23:50:54 -0700
-
-Refresh of timeout
-
----
-
-diff --git a/src/acm.c b/src/acm.c
-index 32ed4b6..5f03f41 100644
---- a/src/acm.c
-+++ b/src/acm.c
-@@ -1119,6 +1119,7 @@ acm_dest_sa_resp(struct acm_send_msg *msg, struct ibv_wc *wc, struct acm_mad *ma
- acm_init_path_av(msg->ep->port, dest);
- dest->addr_timeout = time_stamp_min() + (uint64_t) addr_timeout;
- dest->route_timeout = time_stamp_min() + (uint64_t) route_timeout;
-+ acm_log(2, "timeout addr %llu route %llu\n", dest->addr_timeout, dest->route_timeout);
- dest->state = ACM_READY;
- } else {
- dest->state = ACM_INIT;
-@@ -3088,7 +3089,7 @@ static void acm_set_options(void)
- else if (!stricmp("addr_prot", opt))
- addr_prot = acm_convert_addr_prot(value);
- else if (!stricmp("addr_timeout", opt))
-- addr_timeout = aoti(value);
-+ addr_timeout = atoi(value);
- else if (!stricmp("route_prot", opt))
- route_prot = acm_convert_route_prot(value);
- else if (!strcmp("route_timeout", opt))
-diff --git a/src/acme.c b/src/acme.c
-index 5bc9c01..4cd1a97 100644
---- a/src/acme.c
-+++ b/src/acme.c
-@@ -136,7 +136,7 @@ static void gen_opts_temp(FILE *f)
- fprintf(f, "# Number of minutes to maintain IP address to GID mapping before\n");
- fprintf(f, "# repeating address resolution. A value of -1 indicates that the\n");
- fprintf(f, "# mapping will not time out.\n");
-- fprintf(f, "# 1 hour = 60, 1 day = 1440, 1 week = 10080, 1 month ~ 43200")
-+ fprintf(f, "# 1 hour = 60, 1 day = 1440, 1 week = 10080, 1 month ~ 43200");
- fprintf(f, "\n");
- fprintf(f, "addr_timeout 1440\n");
- fprintf(f, "\n");
-@@ -153,7 +153,7 @@ static void gen_opts_temp(FILE *f)
- fprintf(f, "# repeating route resolution. A value of -1 indicates that the\n");
- fprintf(f, "# mapping will not time out. However, the route will\n");
- fprintf(f, "# automatically time out when the address times out.\n");
-- fprintf(f, "# 1 hour = 60, 1 day = 1440, 1 week = 10080, 1 month ~ 43200")
-+ fprintf(f, "# 1 hour = 60, 1 day = 1440, 1 week = 10080, 1 month ~ 43200");
- fprintf(f, "\n");
- fprintf(f, "route_timeout -1\n");
- fprintf(f, "\n");
-@@ -677,9 +677,9 @@ static void query_perf(char *svc)
- }
-
- printf("%s,", svc);
-- for (i = 0; i < cnt; i++)
-+ for (i = 0; i < cnt - 1; i++)
- printf("%llu,", (unsigned long long) counters[i]);
-- printf("\n");
-+ printf("%llu\n", (unsigned long long) counters[i]);
- ib_acm_free_perf(counters);
- }
Bottom: 422919c089c623304ae1940eb6bdae4237feb5ab
-Top: 73024cf0fe32007e791c40697c2b40c1e344876e
+Top: e1db328d04a21d68e7647747266a74f267eeefee
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2012-10-08 17:00:14 -0700
#define PER_THREAD __thread\r
static inline int beginthread(void (*func)(void *), void *arg)\r
diff --git a/src/acm.c b/src/acm.c
-index b6fa32f..32ed4b6 100644
+index b6fa32f..5f03f41 100644
--- a/src/acm.c
+++ b/src/acm.c
@@ -1,5 +1,5 @@
dest->state = ACM_READY;
return ACM_STATUS_SUCCESS;
}
-@@ -1111,6 +1117,8 @@ acm_dest_sa_resp(struct acm_send_msg *msg, struct ibv_wc *wc, struct acm_mad *ma
+@@ -1111,6 +1117,9 @@ acm_dest_sa_resp(struct acm_send_msg *msg, struct ibv_wc *wc, struct acm_mad *ma
if (!status) {
memcpy(&dest->path, sa_mad->data, sizeof(dest->path));
acm_init_path_av(msg->ep->port, dest);
+ dest->addr_timeout = time_stamp_min() + (uint64_t) addr_timeout;
+ dest->route_timeout = time_stamp_min() + (uint64_t) route_timeout;
++ acm_log(2, "timeout addr %llu route %llu\n", dest->addr_timeout, dest->route_timeout);
dest->state = ACM_READY;
} else {
dest->state = ACM_INIT;
-@@ -2085,6 +2093,22 @@ acm_svr_queue_req(struct acm_dest *dest, struct acm_client *client,
+@@ -2085,6 +2094,22 @@ acm_svr_queue_req(struct acm_dest *dest, struct acm_client *client,
return ACM_STATUS_SUCCESS;
}
static int
acm_svr_resolve_dest(struct acm_client *client, struct acm_msg *msg)
{
-@@ -2127,8 +2151,11 @@ acm_svr_resolve_dest(struct acm_client *client, struct acm_msg *msg)
+@@ -2127,8 +2152,11 @@ acm_svr_resolve_dest(struct acm_client *client, struct acm_msg *msg)
}
lock_acquire(&dest->lock);
acm_log(2, "request satisfied from local cache\n");
atomic_inc(&counter[ACM_CNTR_ROUTE_CACHE]);
status = ACM_STATUS_SUCCESS;
-@@ -2222,8 +2249,11 @@ acm_svr_resolve_path(struct acm_client *client, struct acm_msg *msg)
+@@ -2222,8 +2250,11 @@ acm_svr_resolve_path(struct acm_client *client, struct acm_msg *msg)
}
lock_acquire(&dest->lock);
acm_log(2, "request satisfied from local cache\n");
atomic_inc(&counter[ACM_CNTR_ROUTE_CACHE]);
status = ACM_STATUS_SUCCESS;
-@@ -2620,6 +2650,8 @@ static int acm_init_ep_loopback(struct acm_ep *ep)
+@@ -2620,6 +2651,8 @@ static int acm_init_ep_loopback(struct acm_ep *ep)
dest->path.rate = (uint8_t) ep->port->rate;
dest->remote_qpn = ep->qp->qp_num;
dest->state = ACM_READY;
acm_put_dest(dest);
acm_log(1, "added loopback dest %s\n", dest->name);
-@@ -3055,8 +3087,12 @@ static void acm_set_options(void)
+@@ -3055,8 +3088,12 @@ static void acm_set_options(void)
strcpy(lock_file, value);
else if (!stricmp("addr_prot", opt))
addr_prot = acm_convert_addr_prot(value);
+ else if (!stricmp("addr_timeout", opt))
-+ addr_timeout = aoti(value);
++ addr_timeout = atoi(value);
else if (!stricmp("route_prot", opt))
route_prot = acm_convert_route_prot(value);
+ else if (!strcmp("route_timeout", opt))
loopback_prot = acm_convert_loopback_prot(value);
else if (!stricmp("server_port", opt))
diff --git a/src/acme.c b/src/acme.c
-index 0e1d4ed..5bc9c01 100644
+index 0e1d4ed..4cd1a97 100644
--- a/src/acme.c
+++ b/src/acme.c
@@ -132,6 +132,14 @@ static void gen_opts_temp(FILE *f)
+ fprintf(f, "# Number of minutes to maintain IP address to GID mapping before\n");
+ fprintf(f, "# repeating address resolution. A value of -1 indicates that the\n");
+ fprintf(f, "# mapping will not time out.\n");
-+ fprintf(f, "# 1 hour = 60, 1 day = 1440, 1 week = 10080, 1 month ~ 43200")
++ fprintf(f, "# 1 hour = 60, 1 day = 1440, 1 week = 10080, 1 month ~ 43200");
+ fprintf(f, "\n");
+ fprintf(f, "addr_timeout 1440\n");
+ fprintf(f, "\n");
+ fprintf(f, "# repeating route resolution. A value of -1 indicates that the\n");
+ fprintf(f, "# mapping will not time out. However, the route will\n");
+ fprintf(f, "# automatically time out when the address times out.\n");
-+ fprintf(f, "# 1 hour = 60, 1 day = 1440, 1 week = 10080, 1 month ~ 43200")
++ fprintf(f, "# 1 hour = 60, 1 day = 1440, 1 week = 10080, 1 month ~ 43200");
+ fprintf(f, "\n");
+ fprintf(f, "route_timeout -1\n");
+ fprintf(f, "\n");
fprintf(f, "# loopback_prot:\n");
fprintf(f, "# Address and route resolution protocol to resolve local addresses\n");
fprintf(f, "# Supported protocols are:\n");
+@@ -660,9 +677,9 @@ static void query_perf(char *svc)
+ }
+
+ printf("%s,", svc);
+- for (i = 0; i < cnt; i++)
++ for (i = 0; i < cnt - 1; i++)
+ printf("%llu,", (unsigned long long) counters[i]);
+- printf("\n");
++ printf("%llu\n", (unsigned long long) counters[i]);
+ ib_acm_free_perf(counters);
+ }