From: Michael Heinz <michael.heinz-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
To: roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
michael.heinz-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org
Subject: [PATCH 1/2] Improved node descriptions
Date: Thu, 17 Feb 2011 16:31:03 -0500 [thread overview]
Message-ID: <20110217213103.25708.4630.stgit@homer> (raw)
In-Reply-To: <20110217213017.25708.95042.stgit@homer>
The common practice in IB fabrics is to set the description of an HCA to be
the hostname of the machine plus a description (i.e., "myhost hca-1",
"myhost hca-2", etc..)
This has a limitation, however. The first is that if the machine's
hostname is set via DHCP, the HCA description may be set before the hostname
is, leading to an incorrect description. This can also occur if the machine's
hostname changes for some other reason after boot.
This can cause difficulties and confusion when trying to maintain a large
fabric - if all your nodes are described as "localhost HCA-1" it can be very
difficult to figure out which node is suffering from symbol errors.
This patch addresses the problem by providing a function to build the node
description. If the provided source string for the description contains an
'@' character, the function will substitute the current utsname.
This ensures that even after a fabric has been completely initialized, if
a node's hostname changes, that change will be reflected in the next sweep
of the SM, but also maintains compatibility with existing code since the
behavior is unchanged if the description string does not contain an '@'
character.
Signed-off-by: Michael Heinz <michael.heinz-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
---
drivers/infiniband/core/mad.c | 18 ++++++++++++++++++
include/rdma/ib_mad.h | 8 ++++++++
2 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c
index 822cfdc..8e4ac68 100644
--- a/drivers/infiniband/core/mad.c
+++ b/drivers/infiniband/core/mad.c
@@ -41,6 +41,7 @@
#include "mad_rmpp.h"
#include "smi.h"
#include "agent.h"
+#include "linux/utsname.h"
MODULE_LICENSE("Dual BSD/GPL");
MODULE_DESCRIPTION("kernel IB MAD API");
@@ -932,6 +933,23 @@ int ib_get_mad_data_offset(u8 mgmt_class)
}
EXPORT_SYMBOL(ib_get_mad_data_offset);
+void ib_build_node_desc(char *dest, char *src)
+{
+ int i;
+ for (i = 0; i < 64;) {
+ if (*src == '@') {
+ char *name = init_utsname()->nodename;
+ for (; *name && (*name != '.') && (i < 64); ++i)
+ *dest++ = *name++;
+ src++;
+ } else {
+ *dest++ = *src++;
+ i++;
+ }
+ }
+}
+EXPORT_SYMBOL(ib_build_node_desc);
+
int ib_is_mad_class_rmpp(u8 mgmt_class)
{
if ((mgmt_class == IB_MGMT_CLASS_SUBN_ADM) ||
diff --git a/include/rdma/ib_mad.h b/include/rdma/ib_mad.h
index d3b9401..5916617 100644
--- a/include/rdma/ib_mad.h
+++ b/include/rdma/ib_mad.h
@@ -637,6 +637,14 @@ int ib_is_mad_class_rmpp(u8 mgmt_class);
int ib_get_mad_data_offset(u8 mgmt_class);
/**
+ * ib_build_node_desc - copies the node description and replaces
+ * any @ markers with the present system node name.
+ * @dest: destination
+ * @src: source
+ */
+void ib_build_node_desc(char *dest, char *src);
+
+/**
* ib_get_rmpp_segment - returns the data buffer for a given RMPP segment.
* @send_buf: Previously allocated send data buffer.
* @seg_num: number of segment to return
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-02-17 21:31 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-17 21:30 [PATCH 0/2] Improved node descriptions Michael Heinz
2011-02-17 21:31 ` Michael Heinz [this message]
2011-02-17 21:31 ` [PATCH 2/2] " Michael Heinz
2011-02-17 23:20 ` [PATCH 0/2] " Roland Dreier
[not found] ` <AANLkTim5MrHMVjaNFtHeWBy82dag4XNxdBcjBEW+d1yb-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-02-18 4:19 ` Hal Rosenstock
[not found] ` <AANLkTikh-8uGccT0tumHAu6cPOBm+k8joCaQ4W-grkHd-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-02-18 5:19 ` Roland Dreier
2011-02-18 16:22 ` Mike Heinz
[not found] ` <4C2744E8AD2982428C5BFE523DF8CDCB4A20B289C7-amwN6d8PyQWXx9kJd3VG2h2eb7JE58TQ@public.gmane.org>
2011-02-18 22:57 ` Hal Rosenstock
2011-02-18 14:09 ` Mike Heinz
2011-02-19 7:23 ` Jack Morgenstein
[not found] ` <201102190923.12641.jackm-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2011-02-21 18:30 ` Mike Heinz
2011-02-19 19:24 ` Jason Gunthorpe
[not found] ` <20110219192458.GB4506-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2011-02-21 19:26 ` Mike Heinz
[not found] ` <4C2744E8AD2982428C5BFE523DF8CDCB4A20B28B17-amwN6d8PyQWXx9kJd3VG2h2eb7JE58TQ@public.gmane.org>
2011-02-22 23:13 ` Roland Dreier
[not found] ` <AANLkTi=1rmRckZz1iAXLpakf5bMuBp4koGOyO-FUDz_M-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-02-22 23:43 ` Jason Gunthorpe
[not found] ` <20110222234304.GA21731-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2011-02-23 0:03 ` Roland Dreier
[not found] ` <AANLkTink3ec2O8-ExPuJpJd5j_Y0UtiL=QtM0rrmZR88-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-02-23 5:41 ` Jason Gunthorpe
[not found] ` <20110223054151.GA2363-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2011-02-23 21:56 ` Ira Weiny
2011-02-24 2:31 ` Mike Heinz
2011-02-23 21:02 ` Mike Heinz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110217213103.25708.4630.stgit@homer \
--to=michael.heinz-h88zbnxc6kdqt0dzr+alfa@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox