From: Sean Hefty Date: Fri, 28 Jun 2013 07:34:26 +0000 (-0700) Subject: refresh (create temporary patch) X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=14db081bdca35cf3f2d726ce049f1e8af6a64d8c;p=~shefty%2Fibacm.git refresh (create temporary patch) --- diff --git a/meta b/meta index e8f7b33..0e43b21 100644 --- a/meta +++ b/meta @@ -1,6 +1,6 @@ Version: 1 -Previous: 96d27ca0c9aff1814ad43dab6cf606d36a74868e -Head: 2d1e9220e14497809698e1874a806a4dc851b66c +Previous: ca094589666ec0a349e2619776d8459b27136a00 +Head: 9e40bb14326696371acb6da3c6e067649d67d4fd Applied: rmcfg: 84d811fcdc9f212f243f82594d613b68aea367c4 acm_notes-txt-change-dos-forma: d76f683c246786876219d6db213643600734d894 @@ -14,6 +14,7 @@ Applied: convert-linux-header-files-fro: 6365cdc2841a09311d4036d7b5c4f1dc825f8784 add-support-for-preloading-ipv: 4aff1ccbb2774007f19719b9139584fbffac640a add-option-to-allow-for-acm-ca: 2d1e9220e14497809698e1874a806a4dc851b66c + refresh-temp: 9e40bb14326696371acb6da3c6e067649d67d4fd Unapplied: notes-fmt: 988d784b42cdb9db05b1608a5cdb29c51215bd9e dev-name2ip: 8e00708e882239292492e13aa51c82042255933c diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 0000000..d938f9f --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,253 @@ +Bottom: 01f792aa440347a527f58202e6ba1bf0088631fc +Top: 6271d5d486cc35db62633f160b9e093ed7ad864d +Author: Sean Hefty +Date: 2013-06-28 00:34:26 -0700 + +Refresh of add-option-to-allow-for-acm-ca + +--- + +diff --git a/man/ib_acme.1 b/man/ib_acme.1 +index e89c6fd..b00b315 100644 +--- a/man/ib_acme.1 ++++ b/man/ib_acme.1 +@@ -1,10 +1,10 @@ +-.TH "ib_acme" 7 "2013-06-15" "ib_acme" "ib_acme" ib_acme ++.TH "ib_acme" 7 "2013-06-21" "ib_acme" "ib_acme" ib_acme + .SH NAME + ib_acme \- test and configuration utility for the IB ACM + .SH SYNOPSIS + .sp + .nf +-\fIib_acme\fR [-f addr_format] [-s src_addr] -d dest_addr [-v] [-c] [-P] [-S svc_addr] ++\fIib_acme\fR [-f addr_format] [-s src_addr] -d dest_addr [-v] [-c] [-P] [-S svc_addr] [-C repetitions] + .fi + .nf + \fIib_acme\fR [-A [addr_file]] [-O [opt_file]] [-D dest_dir] [-V] +@@ -48,6 +48,10 @@ Queries performance data from the destination service + \-S svc_addr + address of ACM service, default: local service + .TP ++\-C repetitions ++number of repetitions to perform resolution. Used to measure ++performance of ACM cache lookups. Defaults to 1. ++.TP + \-A [addr_file] + With this option, the ib_acme utility automatically generates the address + configuration file ibacm_addr.cfg. The generated file is +diff --git a/src/acme.c b/src/acme.c +index cb2128c..1109b50 100644 +--- a/src/acme.c ++++ b/src/acme.c +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2009-2010 Intel Corporation. All rights reserved. ++ * Copyright (c) 2013 Mellanox Technologies LTD. All rights reserved. + * + * This software is available to you under the OpenIB.org BSD license + * below: +@@ -55,6 +56,7 @@ static char *src_arg; + static char addr_type = 'u'; + static int verify; + static int nodelay; ++static int repetitions = 1; + + enum perf_query_output { + PERF_QUERY_NONE, +@@ -84,6 +86,7 @@ static void show_usage(char *program) + printf(" [-c] - read ACM cached data only\n"); + printf(" [-P] - query performance data from destination service\n"); + printf(" [-S svc_addr] - address of ACM service, default: local service\n"); ++ printf(" [-C repetitions] - repeat count for resolution\n"); + printf("usage 2: %s\n", program); + printf("Generate default ibacm service configuration and option files\n"); + printf(" -A [addr_file] - generate local address configuration file\n"); +@@ -540,7 +543,7 @@ static int resolve_ip(struct ibv_path_record *path) + } + + ret = ib_acm_resolve_ip(saddr, (struct sockaddr *) &dest, +- &paths, &count, get_resolve_flags()); ++ &paths, &count, get_resolve_flags(), (repetitions == 1)); + if (ret) { + printf("ib_acm_resolve_ip failed: %s\n", strerror(errno)); + return ret; +@@ -556,7 +559,7 @@ static int resolve_name(struct ibv_path_record *path) + struct ibv_path_data *paths; + int ret, count; + +- ret = ib_acm_resolve_name(src_addr, dest_addr, &paths, &count, get_resolve_flags()); ++ ret = ib_acm_resolve_name(src_addr, dest_addr, &paths, &count, get_resolve_flags(), (repetitions == 1)); + if (ret) { + printf("ib_acm_resolve_name failed: %s\n", strerror(errno)); + return ret; +@@ -670,7 +673,7 @@ static void resolve(char *svc) + { + char **dest_list, **src_list; + struct ibv_path_record path; +- int ret, d = 0, s = 0; ++ int ret = 0, d = 0, s = 0, i; + char dest_type; + + dest_list = parse(dest_arg, NULL); +@@ -690,23 +693,25 @@ static void resolve(char *svc) + printf("Destination: %s\n", dest_addr); + if (src_addr) + printf("Source: %s\n", src_addr); +- switch (dest_type) { +- case 'i': +- ret = resolve_ip(&path); +- break; +- case 'n': +- ret = resolve_name(&path); +- break; +- case 'l': +- memset(&path, 0, sizeof path); +- ret = resolve_lid(&path); +- break; +- case 'g': +- memset(&path, 0, sizeof path); +- ret = resolve_gid(&path); +- break; +- default: +- break; ++ for (i = 0; i < repetitions; i++) { ++ switch (dest_type) { ++ case 'i': ++ ret = resolve_ip(&path); ++ break; ++ case 'n': ++ ret = resolve_name(&path); ++ break; ++ case 'l': ++ memset(&path, 0, sizeof path); ++ ret = resolve_lid(&path); ++ break; ++ case 'g': ++ memset(&path, 0, sizeof path); ++ ret = resolve_gid(&path); ++ break; ++ default: ++ break; ++ } + } + + if (!ret) +@@ -810,7 +815,7 @@ int CDECL_FUNC main(int argc, char **argv) + if (ret) + goto out; + +- while ((op = getopt(argc, argv, "f:s:d:vcA::O::D:P::S:V")) != -1) { ++ while ((op = getopt(argc, argv, "f:s:d:vcA::O::D:P::S:C:V")) != -1) { + switch (op) { + case 'f': + addr_type = optarg[0]; +@@ -852,6 +857,11 @@ int CDECL_FUNC main(int argc, char **argv) + case 'S': + svc_arg = optarg; + break; ++ case 'C': ++ repetitions = atoi(optarg); ++ if (!repetitions) ++ repetitions = 1; ++ break; + case 'V': + verbose = 1; + break; +diff --git a/src/libacm.c b/src/libacm.c +index 274eb2d..1bf7030 100644 +--- a/src/libacm.c ++++ b/src/libacm.c +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2009 Intel Corporation. All rights reserved. ++ * Copyright (c) 2013 Mellanox Technologies LTD. All rights reserved. + * + * This software is available to you under the OpenIB.org BSD license + * below: +@@ -113,7 +114,7 @@ void ib_acm_disconnect(void) + } + + static int acm_format_resp(struct acm_msg *msg, +- struct ibv_path_data **paths, int *count) ++ struct ibv_path_data **paths, int *count, int print) + { + struct ibv_path_data *path_data; + char addr[ACM_MAX_ADDRESS]; +@@ -154,7 +155,8 @@ static int acm_format_resp(struct acm_msg *msg, + default: + goto err; + } +- printf("Source: %s\n", addr); ++ if (print) ++ printf("Source: %s\n", addr); + break; + } + } +@@ -221,7 +223,7 @@ static int acm_error(uint8_t status) + } + + static int acm_resolve(uint8_t *src, uint8_t *dest, uint8_t type, +- struct ibv_path_data **paths, int *count, uint32_t flags) ++ struct ibv_path_data **paths, int *count, uint32_t flags, int print) + { + struct acm_msg msg; + int ret, cnt = 0; +@@ -258,28 +260,28 @@ static int acm_resolve(uint8_t *src, uint8_t *dest, uint8_t type, + goto out; + } + +- ret = acm_format_resp(&msg, paths, count); ++ ret = acm_format_resp(&msg, paths, count, print); + out: + lock_release(&lock); + return ret; + } + + int ib_acm_resolve_name(char *src, char *dest, +- struct ibv_path_data **paths, int *count, uint32_t flags) ++ struct ibv_path_data **paths, int *count, uint32_t flags, int print) + { + return acm_resolve((uint8_t *) src, (uint8_t *) dest, +- ACM_EP_INFO_NAME, paths, count, flags); ++ ACM_EP_INFO_NAME, paths, count, flags, print); + } + + int ib_acm_resolve_ip(struct sockaddr *src, struct sockaddr *dest, +- struct ibv_path_data **paths, int *count, uint32_t flags) ++ struct ibv_path_data **paths, int *count, uint32_t flags, int print) + { + if (((struct sockaddr *) dest)->sa_family == AF_INET) { + return acm_resolve((uint8_t *) src, (uint8_t *) dest, +- ACM_EP_INFO_ADDRESS_IP, paths, count, flags); ++ ACM_EP_INFO_ADDRESS_IP, paths, count, flags, print); + } else { + return acm_resolve((uint8_t *) src, (uint8_t *) dest, +- ACM_EP_INFO_ADDRESS_IP6, paths, count, flags); ++ ACM_EP_INFO_ADDRESS_IP6, paths, count, flags, print); + } + } + +diff --git a/src/libacm.h b/src/libacm.h +index 61220d5..9a241aa 100644 +--- a/src/libacm.h ++++ b/src/libacm.h +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2009 Intel Corporation. All rights reserved. ++ * Copyright (c) 2013 Mellanox Technologies LTD. All rights reserved. + * + * This software is available to you under the OpenIB.org BSD license + * below: +@@ -36,9 +37,11 @@ int ib_acm_connect(char *dest_svc); + void ib_acm_disconnect(); + + int ib_acm_resolve_name(char *src, char *dest, +- struct ibv_path_data **paths, int *count, uint32_t flags); ++ struct ibv_path_data **paths, int *count, uint32_t flags, ++ int print); + int ib_acm_resolve_ip(struct sockaddr *src, struct sockaddr *dest, +- struct ibv_path_data **paths, int *count, uint32_t flags); ++ struct ibv_path_data **paths, int *count, uint32_t flags, ++ int print); + int ib_acm_resolve_path(struct ibv_path_record *path, uint32_t flags); + #define ib_acm_free_paths(paths) free(paths)