From 0c2d24b47dab9c3e72fdccd540acb26878749ce1 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Tue, 28 Jun 2011 17:32:10 -0700 Subject: [PATCH] refresh --- meta | 7 +- patches/counters | 119 +++++++++++++-------------- patches/refresh-temp | 191 ------------------------------------------- 3 files changed, 59 insertions(+), 258 deletions(-) delete mode 100644 patches/refresh-temp diff --git a/meta b/meta index cc48f85..82c0f3c 100644 --- a/meta +++ b/meta @@ -1,11 +1,10 @@ Version: 1 -Previous: eb41e78ffc3150b3636003b5c9431c0e1a2c7ff1 -Head: 67120d2b6a6d83e598a825ceb4ffafb3632cad0e +Previous: 9b3d8fd437b0c1eb8044498617ea6377ac207553 +Head: 22e92ee9a89be01fe6140b3eb5a90650808fbc05 Applied: deam: 15fcbd5198ba0c15ab4e8fddcdba32c8ef45faf8 braces: 5fb48c1b8d722b60332f83ca4c8b92b2a7e456a6 - counters: 11672c1f019a280eb1bf5835da2e4b72788cd548 - refresh-temp: 67120d2b6a6d83e598a825ceb4ffafb3632cad0e + counters: 22e92ee9a89be01fe6140b3eb5a90650808fbc05 Unapplied: acm1.0.5: 1b225173756cfcec4d81d26b1160ebae7644261b name2ip: 8e00708e882239292492e13aa51c82042255933c diff --git a/patches/counters b/patches/counters index 503c7e7..a51a75a 100644 --- a/patches/counters +++ b/patches/counters @@ -1,5 +1,5 @@ Bottom: fad6610d1d2786b12bafb5cd923f53cfb674ebdb -Top: 3550bace98f1e4ab54dfcdc255f2dd8774f3f09b +Top: 53f19f53102c76709faccdc0cba71ef7b3a96c5e Author: Sean Hefty Date: 2011-06-27 10:29:36 -0700 @@ -81,7 +81,7 @@ index acf6a1d..af57d0b 100644 4. Optionally, run 'ib_acme -d -v' to verify that the ib_acm service is running. diff --git a/src/acm.c b/src/acm.c -index 8b01adb..d1cdb8b 100644 +index 8b01adb..1f9d2e8 100644 --- a/src/acm.c +++ b/src/acm.c @@ -47,7 +47,7 @@ @@ -118,9 +118,9 @@ index 8b01adb..d1cdb8b 100644 memset(&msg, 0, sizeof msg); + if (status == ACM_STATUS_ENODATA) -+ atomic_inc(counters[ACM_CNTR_NODATA]); ++ atomic_inc(&counter[ACM_CNTR_NODATA]); + else if (status) -+ atomic_inc(counters[ACM_CNTR_ERROR]); ++ atomic_inc(&counter[ACM_CNTR_ERROR]); + lock_acquire(&client->lock); if (client->sock == INVALID_SOCKET) { @@ -180,7 +180,7 @@ index 8b01adb..d1cdb8b 100644 status = ACM_STATUS_SUCCESS; break; case ACM_INIT: -@@ -2209,6 +2224,42 @@ put: +@@ -2209,10 +2224,46 @@ put: return ret; } @@ -199,7 +199,7 @@ index 8b01adb..d1cdb8b 100644 + +static int acm_svr_perf_query(struct acm_client *client, struct acm_perf_msg *msg) +{ -+ int i; ++ int ret, i; + + acm_log(2, "client %d\n", client->index); + msg->hdr.opcode |= ACM_OP_ACK; @@ -216,13 +216,18 @@ index 8b01adb..d1cdb8b 100644 + if (ret != msg->hdr.length) + acm_log(0, "ERROR - failed to send response\n"); + else -+ ret = 0 ++ ret = 0; ++ + return ret; +} + static void acm_svr_receive(struct acm_client *client) { struct acm_msg msg; +- struct acm_resolve_msg *resolve_msg = (struct acm_resolve_msg *) &msg; + int ret; + + acm_log(2, "client %d\n", client->index); @@ -2228,19 +2279,17 @@ static void acm_svr_receive(struct acm_client *client) goto out; } @@ -253,7 +258,15 @@ index 8b01adb..d1cdb8b 100644 } out: -@@ -2577,9 +2626,6 @@ acm_alloc_ep(struct acm_port *port, uint16_t pkey, uint16_t pkey_index) +@@ -2557,7 +2606,6 @@ static struct acm_ep * + acm_alloc_ep(struct acm_port *port, uint16_t pkey, uint16_t pkey_index) + { + struct acm_ep *ep; +- int i; + + acm_log(1, "\n"); + ep = calloc(1, sizeof *ep); +@@ -2577,9 +2625,6 @@ acm_alloc_ep(struct acm_port *port, uint16_t pkey, uint16_t pkey_index) DListInit(&ep->wait_queue); lock_init(&ep->lock); @@ -263,7 +276,7 @@ index 8b01adb..d1cdb8b 100644 return ep; } -@@ -3080,7 +3126,7 @@ static void show_usage(char *program) +@@ -3080,7 +3125,7 @@ static void show_usage(char *program) int CDECL_FUNC main(int argc, char **argv) { @@ -272,7 +285,7 @@ index 8b01adb..d1cdb8b 100644 while ((op = getopt(argc, argv, "DA:O:")) != -1) { switch (op) { -@@ -3120,6 +3166,9 @@ int CDECL_FUNC main(int argc, char **argv) +@@ -3120,6 +3165,9 @@ int CDECL_FUNC main(int argc, char **argv) DListInit(&dev_list); DListInit(&timeout_list); event_init(&timeout_event); @@ -283,7 +296,7 @@ index 8b01adb..d1cdb8b 100644 if (acm_open_devices()) { acm_log(0, "ERROR - unable to open any devices\n"); diff --git a/src/acme.c b/src/acme.c -index d42ba81..3be1f86 100644 +index d42ba81..39ce2dd 100644 --- a/src/acme.c +++ b/src/acme.c @@ -52,8 +52,6 @@ static char *src_addr; @@ -304,20 +317,16 @@ index d42ba81..3be1f86 100644 printf(" -A [addr_file] - generate local address configuration file\n"); printf(" (default is %s)\n", ACM_ADDR_FILE); printf(" -O [opt_file] - generate local acm_opts.cfg options file\n"); -@@ -583,11 +583,9 @@ static char *get_dest(char *arg, char *format) - static int resolve(char *program, char *dest_arg) - { - char **dest_list; -- struct ibv_path_record path; +@@ -587,7 +587,7 @@ static int resolve(char *program, char *dest_arg) int ret, i = 0; -- char dest_type; + char dest_type; - ret = libacm_init(); + ret = ib_acm_connect("127.0.0.1"); if (ret) { printf("Unable to contact ib_acm service\n"); return ret; -@@ -631,7 +629,47 @@ static int resolve(char *program, char *dest_arg) +@@ -631,7 +631,46 @@ static int resolve(char *program, char *dest_arg) } free(dest_list); @@ -326,10 +335,10 @@ index d42ba81..3be1f86 100644 + return ret; +} + -+static int perf_query(char *program, char *dest_arg) ++static int query_perf(char *program, char *dest_arg) +{ + char **dest_list; -+ int ret, cnt, i, d = 0; ++ int ret, cnt, i, d; + uint64_t *counters; + + dest_list = parse(dest_arg, NULL); @@ -339,14 +348,13 @@ index d42ba81..3be1f86 100644 + } + + printf("Destination,Error Count,Resolve Count,No Data,Addr Cache Count," -+ "Addr Query Count,Route Cache Count,Route Query Count\n") -+ for (dest_addr = get_dest(dest_list[d], &dest_type); dest_addr; -+ dest_addr = get_dest(dest_list[++d], &dest_type)) { ++ "Addr Query Count,Route Cache Count,Route Query Count\n"); ++ for (d = 0; dest_list[d]; d++) { + -+ printf("%s,", dest_addr); -+ ret = ib_acm_connect(dest_addr); ++ printf("%s,", dest_list[d]); ++ ret = ib_acm_connect(dest_list[d]); + if (ret) { -+ printf("Unable to contact ib_acm service\n); ++ printf("Unable to contact ib_acm service\n"); + continue; + } + @@ -355,7 +363,7 @@ index d42ba81..3be1f86 100644 + printf("Failed to query perf data %s\n", strerror(errno)); + } else { + for (i = 0; i < cnt; i++) -+ printf("%ull,", counters[i]); ++ printf("%llu,", counters[i]); + printf("\n"); + } + @@ -366,7 +374,7 @@ index d42ba81..3be1f86 100644 return ret; } -@@ -650,12 +688,15 @@ int CDECL_FUNC main(int argc, char **argv) +@@ -650,12 +689,15 @@ int CDECL_FUNC main(int argc, char **argv) { char *dest_arg = NULL; int op, ret; @@ -383,7 +391,7 @@ index d42ba81..3be1f86 100644 switch (op) { case 'f': addr_type = optarg[0]; -@@ -685,6 +726,9 @@ int CDECL_FUNC main(int argc, char **argv) +@@ -685,6 +727,9 @@ int CDECL_FUNC main(int argc, char **argv) case 'D': dest_dir = optarg; break; @@ -393,7 +401,7 @@ index d42ba81..3be1f86 100644 case 'V': verbose = 1; break; -@@ -700,8 +744,12 @@ int CDECL_FUNC main(int argc, char **argv) +@@ -700,8 +745,12 @@ int CDECL_FUNC main(int argc, char **argv) exit(1); } @@ -401,14 +409,14 @@ index d42ba81..3be1f86 100644 - ret = resolve(argv[0], dest_arg); + if (dest_arg) { + if (perf_query) -+ ret = perf_query(argv[0], dest_arg); ++ ret = query_perf(argv[0], dest_arg); + else + ret = resolve(argv[0], dest_arg); + } if (!ret && make_addr) ret = gen_addr(); -@@ -709,6 +757,7 @@ int CDECL_FUNC main(int argc, char **argv) +@@ -709,6 +758,7 @@ int CDECL_FUNC main(int argc, char **argv) if (!ret && make_opts) ret = gen_opts(); @@ -417,46 +425,30 @@ index d42ba81..3be1f86 100644 if (verbose || !(make_addr || make_opts) || ret) printf("return status 0x%x\n", ret); diff --git a/src/libacm.c b/src/libacm.c -index 31014d1..4491506 100644 +index 31014d1..eb52a3c 100644 --- a/src/libacm.c +++ b/src/libacm.c -@@ -66,45 +66,71 @@ static void acm_set_server_port(void) +@@ -36,6 +36,8 @@ + #include + #include + #include ++#include ++#include + + struct acm_port { + uint8_t port_num; +@@ -66,45 +68,46 @@ static void acm_set_server_port(void) } } -int libacm_init(void) -+static char *get_dest(char *arg) ++int ib_acm_connect(char *dest) { - struct sockaddr_in addr; -+ static char addr[64]; + struct addrinfo hint, *res; -+ const char *ai; int ret; - ret = osd_init(); -+ memset(&hint, 0, sizeof hint); -+ hint.ai_protocol = IPPROTO_TCP; -+ ret = getaddrinfo(arg, NULL, &hint, &res); -+ if (ret) { -+ *format = 'l'; -+ return arg; -+ } -+ -+ if (res->ai_family == AF_INET) { -+ ai = inet_ntop(AF_INET, &((struct sockaddr_in *) res->ai_addr)->sin_addr, -+ addr, sizeof addr); -+ } else { -+ ai = inet_ntop(AF_INET6, &((struct sockaddr_in6 *) res->ai_addr)->sin6_addr, -+ addr, sizeof addr); -+ } -+ freeaddrinfo(res); -+} -+ -+int ib_acm_connect(char *dest) -+{ -+ struct addrinfo hint, *res; -+ int ret; -+ + acm_set_server_port(); + memset(&hint, 0, sizeof hint); + hint.ai_protocol = IPPROTO_TCP; @@ -504,16 +496,16 @@ index 31014d1..4491506 100644 } } -@@ -310,3 +336,41 @@ out: +@@ -310,3 +313,42 @@ out: lock_release(&lock); return ret; } + -+static int ib_acm_query_perf(uint64_t **counters, int *count) ++int ib_acm_query_perf(uint64_t **counters, int *count) +{ + struct acm_msg msg; + struct acm_perf_msg *perf_msg = (struct acm_perf_msg *) &msg; -+ int ret, cnt = 0; ++ int ret; + + lock_acquire(&lock); + memset(&msg, 0, sizeof msg); @@ -541,6 +533,7 @@ index 31014d1..4491506 100644 + } + + memcpy(*counters, perf_msg->data, msg.hdr.data[0]); ++ *count = msg.hdr.data[0]; + ret = 0; +out: + lock_release(&lock); diff --git a/patches/refresh-temp b/patches/refresh-temp deleted file mode 100644 index bc30889..0000000 --- a/patches/refresh-temp +++ /dev/null @@ -1,191 +0,0 @@ -Bottom: 3550bace98f1e4ab54dfcdc255f2dd8774f3f09b -Top: 53f19f53102c76709faccdc0cba71ef7b3a96c5e -Author: Sean Hefty -Date: 2011-06-28 17:32:09 -0700 - -Refresh of counters - ---- - -diff --git a/src/acm.c b/src/acm.c -index d1cdb8b..1f9d2e8 100644 ---- a/src/acm.c -+++ b/src/acm.c -@@ -1010,9 +1010,9 @@ acm_client_resolve_resp(struct acm_client *client, struct acm_resolve_msg *req_m - memset(&msg, 0, sizeof msg); - - if (status == ACM_STATUS_ENODATA) -- atomic_inc(counters[ACM_CNTR_NODATA]); -+ atomic_inc(&counter[ACM_CNTR_NODATA]); - else if (status) -- atomic_inc(counters[ACM_CNTR_ERROR]); -+ atomic_inc(&counter[ACM_CNTR_ERROR]); - - lock_acquire(&client->lock); - if (client->sock == INVALID_SOCKET) { -@@ -2239,7 +2239,7 @@ static int acm_svr_resolve(struct acm_client *client, struct acm_resolve_msg *ms - - static int acm_svr_perf_query(struct acm_client *client, struct acm_perf_msg *msg) - { -- int i; -+ int ret, i; - - acm_log(2, "client %d\n", client->index); - msg->hdr.opcode |= ACM_OP_ACK; -@@ -2256,14 +2256,14 @@ static int acm_svr_perf_query(struct acm_client *client, struct acm_perf_msg *ms - if (ret != msg->hdr.length) - acm_log(0, "ERROR - failed to send response\n"); - else -- ret = 0 -+ ret = 0; -+ - return ret; - } - - static void acm_svr_receive(struct acm_client *client) - { - struct acm_msg msg; -- struct acm_resolve_msg *resolve_msg = (struct acm_resolve_msg *) &msg; - int ret; - - acm_log(2, "client %d\n", client->index); -@@ -2606,7 +2606,6 @@ static struct acm_ep * - acm_alloc_ep(struct acm_port *port, uint16_t pkey, uint16_t pkey_index) - { - struct acm_ep *ep; -- int i; - - acm_log(1, "\n"); - ep = calloc(1, sizeof *ep); -diff --git a/src/acme.c b/src/acme.c -index 3be1f86..39ce2dd 100644 ---- a/src/acme.c -+++ b/src/acme.c -@@ -583,7 +583,9 @@ static char *get_dest(char *arg, char *format) - static int resolve(char *program, char *dest_arg) - { - char **dest_list; -+ struct ibv_path_record path; - int ret, i = 0; -+ char dest_type; - - ret = ib_acm_connect("127.0.0.1"); - if (ret) { -@@ -633,10 +635,10 @@ static int resolve(char *program, char *dest_arg) - return ret; - } - --static int perf_query(char *program, char *dest_arg) -+static int query_perf(char *program, char *dest_arg) - { - char **dest_list; -- int ret, cnt, i, d = 0; -+ int ret, cnt, i, d; - uint64_t *counters; - - dest_list = parse(dest_arg, NULL); -@@ -646,14 +648,13 @@ static int perf_query(char *program, char *dest_arg) - } - - printf("Destination,Error Count,Resolve Count,No Data,Addr Cache Count," -- "Addr Query Count,Route Cache Count,Route Query Count\n") -- for (dest_addr = get_dest(dest_list[d], &dest_type); dest_addr; -- dest_addr = get_dest(dest_list[++d], &dest_type)) { -+ "Addr Query Count,Route Cache Count,Route Query Count\n"); -+ for (d = 0; dest_list[d]; d++) { - -- printf("%s,", dest_addr); -- ret = ib_acm_connect(dest_addr); -+ printf("%s,", dest_list[d]); -+ ret = ib_acm_connect(dest_list[d]); - if (ret) { -- printf("Unable to contact ib_acm service\n); -+ printf("Unable to contact ib_acm service\n"); - continue; - } - -@@ -662,7 +663,7 @@ static int perf_query(char *program, char *dest_arg) - printf("Failed to query perf data %s\n", strerror(errno)); - } else { - for (i = 0; i < cnt; i++) -- printf("%ull,", counters[i]); -+ printf("%llu,", counters[i]); - printf("\n"); - } - -@@ -746,7 +747,7 @@ int CDECL_FUNC main(int argc, char **argv) - - if (dest_arg) { - if (perf_query) -- ret = perf_query(argv[0], dest_arg); -+ ret = query_perf(argv[0], dest_arg); - else - ret = resolve(argv[0], dest_arg); - } -diff --git a/src/libacm.c b/src/libacm.c -index 4491506..eb52a3c 100644 ---- a/src/libacm.c -+++ b/src/libacm.c -@@ -36,6 +36,8 @@ - #include - #include - #include -+#include -+#include - - struct acm_port { - uint8_t port_num; -@@ -66,31 +68,6 @@ static void acm_set_server_port(void) - } - } - --static char *get_dest(char *arg) --{ -- static char addr[64]; -- struct addrinfo hint, *res; -- const char *ai; -- int ret; -- -- memset(&hint, 0, sizeof hint); -- hint.ai_protocol = IPPROTO_TCP; -- ret = getaddrinfo(arg, NULL, &hint, &res); -- if (ret) { -- *format = 'l'; -- return arg; -- } -- -- if (res->ai_family == AF_INET) { -- ai = inet_ntop(AF_INET, &((struct sockaddr_in *) res->ai_addr)->sin_addr, -- addr, sizeof addr); -- } else { -- ai = inet_ntop(AF_INET6, &((struct sockaddr_in6 *) res->ai_addr)->sin6_addr, -- addr, sizeof addr); -- } -- freeaddrinfo(res); --} -- - int ib_acm_connect(char *dest) - { - struct addrinfo hint, *res; -@@ -337,11 +314,11 @@ out: - return ret; - } - --static int ib_acm_query_perf(uint64_t **counters, int *count) -+int ib_acm_query_perf(uint64_t **counters, int *count) - { - struct acm_msg msg; - struct acm_perf_msg *perf_msg = (struct acm_perf_msg *) &msg; -- int ret, cnt = 0; -+ int ret; - - lock_acquire(&lock); - memset(&msg, 0, sizeof msg); -@@ -369,6 +346,7 @@ static int ib_acm_query_perf(uint64_t **counters, int *count) - } - - memcpy(*counters, perf_msg->data, msg.hdr.data[0]); -+ *count = msg.hdr.data[0]; - ret = 0; - out: - lock_release(&lock); -- 2.46.0