Skip to contentSkip to conversation

Add the ability to preload the destination GID and LID caches

PATCH New Hal Rosenstock 1 participant 1 message Jun 27, 2013 InfiniBand

lore
Share & tools
lore
#0 lore raw

PATCH v2 10/15 Add the ability to preload the destination GID and LID caches

Preloading of these caches is supported via a file which is produced by OpenSM by the dump_pr plugin which contains sufficient SA PathRecord information. Details on this file format and configuring OpenSM for this are found in dump_pr_notes.txt in dump_pr.

File format is specified in ibacm_opts.cfg as follows:
path_rec_fmt full_opensm_v1

File format defaults to none which means no preload of ACM cache.

---
Changes since v1:
Eliminated command line option in favor of option file parameters Fixed address and route resolution cache timers

 ibacm_opts.cfg |   12 +++
 linux/osd.h    |    2 +
 man/ibacm.1    |   13 +++-
 src/acm.c      |  254 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 src/acme.c     |   12 +++
 5 files changed, 290 insertions(+), 3 deletions(-)
ibacm_opts.cfg +12 -0
index 87f31d9..968a99d 100644
@@ -143,3 +143,15 @@ min_mtu 2048
 
 min_rate 10
 
+# path_rec_fmt:
+# Indicates format of optional path records file for preloading ACM cache.
+# Supported formats are:
+# none - No path record file preloading (default)
+# full_opensm_v1 - OpenSM "full" path records dump file format (version 1)
+
+path_rec_fmt none
+
+# path_rec_file:
+# If path_rec_fmt is other than "none", full pathname of path records file
+# to use for preloading the ACM cache.  Default is ACM_CONF_DIR/ibacm_path_records.dump
+
linux/osd.h +2 -0
index c8278aa..0b6884f 100644
@@ -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 OpenFabrics.org BSD license
  * below:
@@ -57,6 +58,7 @@
 #define ACM_CONF_DIR  SYSCONFDIR "/" RDMADIR
 #define ACM_ADDR_FILE "ibacm_addr.cfg"
 #define ACM_OPTS_FILE "ibacm_opts.cfg"
+#define ACM_PATH_REC_FILE "ibacm_path_records.dump"
 
 #define LIB_DESTRUCTOR __attribute__((destructor))
 #define CDECL_FUNC
man/ibacm.1 +12 -1
index 35b79c6..3a1e212 100644
@@ -1,4 +1,4 @@
-.TH "ibacm" 1 "2013-06-15" "ibacm" "ibacm" ibacm
+.TH "ibacm" 1 "2013-06-18" "ibacm" "ibacm" ibacm
 .SH NAME
 ibacm \- address and route resolution services for InfiniBand.
 .SH SYNOPSIS
@@ -145,5 +145,16 @@ request is received from a different QPN than a cached request.
 limited to 4.
 .P
 - The number of multicast groups that an endpoint can support is limited to 2.
+.P
+The ibacm contains several internal caches.  These include caches for GID
+and LID destination addresses.  These caches can be optionally
+preloaded. ibacm supports the OpenSM dump_pr plugin "full" PathRecord 
+format which is used to preload these caches.
+The file format is specified in the ibacm_opts.cfg file via the
+path_rec_fmt parameter which should be set to full_opensm_v1 for this file
+format.  Default is none which does not preload these caches.
+See dump_pr.notes.txt in dump_pr for more information on the
+full_opensm_v1 file format and how to configure OpenSM to
+generate this file.
 .SH "SEE ALSO"
 ibacm(7), ib_acme(1), rdma_cm(7)
src/acm.c +252 -2

320 lines not on this page · raw message

src/acme.c +12 -0
index d7ad25f..ec1d3d2 100644
@@ -244,6 +244,18 @@ static void gen_opts_temp(FILE *f)
 	fprintf(f, "\n");
 	fprintf(f, "min_rate 10\n");
 	fprintf(f, "\n");
+	fprintf(f, "# path_rec_fmt:\n");
+	fprintf(f, "# Indicates format of optional path records file for preloading ACM cache.\n");
+	fprintf(f, "# Supported formats are:\n");
+	fprintf(f, "# none - No path record file preloading (default)\n");
+	fprintf(f, "# full_opensm_v1 - OpenSM \"full\" path records dump file format (version 1)\n");
+	fprintf(f, "\n");
+	fprintf(f, "path_rec_fmt none\n");
+	fprintf(f, "\n");
+	fprintf(f, "# path_rec_file:\n");
+	fprintf(f, "# If path_rec_fmt is other than \"none\", full pathname of path records file\n");
+	fprintf(f, "# to use for preloading the ACM cache.  Default is ACM_CONF_DIR/ibacm_path_records.dump\n");
+	fprintf(f, "\n");
 }
 
 static int open_dir(void)
Signature · 6 lines
1.7.8.2

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html