From: Ira Weiny <weiny2-i2BcT+NCU+M@public.gmane.org>
To: Hal Rosenstock <hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
Cc: Jim Foraker <foraker1-i2BcT+NCU+M@public.gmane.org>,
linux-rdma <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH 2/3 fixed] infiniband-diags: Allow specification of an mkey on the command line
Date: Fri, 9 Mar 2012 12:09:31 -0800 [thread overview]
Message-ID: <20120309120931.609233da.weiny2@llnl.gov> (raw)
In-Reply-To: <4F59FEDB.7050605-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
On Fri, 09 Mar 2012 08:00:11 -0500
Hal Rosenstock <hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org> wrote:
> On 3/6/2012 5:18 PM, Jim Foraker wrote:
> >
> > Signed-off-by: Jim Foraker <foraker1-i2BcT+NCU+M@public.gmane.org>
> > ---
> > include/ibdiag_common.h | 1 +
> > libibnetdisc/include/infiniband/ibnetdisc.h | 3 ++-
> > libibnetdisc/src/ibnetdisc.c | 1 +
> > man/ibaddr.8 | 2 ++
> > src/ibaddr.c | 2 ++
> > src/ibccconfig.c | 2 ++
> > src/ibccquery.c | 2 ++
> > src/ibdiag_common.c | 5 +++++
> > src/iblinkinfo.c | 3 +++
> > src/ibping.c | 2 ++
> > src/ibportstate.c | 2 ++
> > src/ibqueryerrors.c | 3 +++
> > src/ibroute.c | 2 ++
> > src/ibsendtrap.c | 2 ++
> > src/ibsysstat.c | 2 ++
> > src/ibtracert.c | 2 ++
> > src/mcm_rereg_test.c | 3 +++
> > src/perfquery.c | 2 ++
> > src/sminfo.c | 2 ++
> > src/smpquery.c | 2 ++
> > src/vendstat.c | 2 ++
> > 21 files changed, 46 insertions(+), 1 deletions(-)
>
> Why do all these tools need mkey ? Isn't it only tools that require SMPs
> needing this support ?
Unfortunately many of the diags issue SMP's when they should not. To keep
them working in the short term with mkey's this patch will have to be applied
until an audit can be performed of every tool. You may have noted I already
fixed saquery with previous patches.
Ira
>
> -- Hal
>
> >
> > diff --git a/include/ibdiag_common.h b/include/ibdiag_common.h
> > index 0131193..e44725d 100644
> > --- a/include/ibdiag_common.h
> > +++ b/include/ibdiag_common.h
> > @@ -50,6 +50,7 @@ extern enum MAD_DEST ibd_dest_type;
> > extern ib_portid_t *ibd_sm_id;
> > extern int ibd_timeout;
> > extern uint32_t ibd_ibnetdisc_flags;
> > +extern uint64_t ibd_mkey;
> >
> > /*========================================================*/
> > /* External interface */
> > diff --git a/libibnetdisc/include/infiniband/ibnetdisc.h b/libibnetdisc/include/infiniband/ibnetdisc.h
> > index 2ae2b06..335ad83 100644
> > --- a/libibnetdisc/include/infiniband/ibnetdisc.h
> > +++ b/libibnetdisc/include/infiniband/ibnetdisc.h
> > @@ -151,7 +151,8 @@ typedef struct ibnd_config {
> > unsigned timeout_ms;
> > unsigned retries;
> > uint32_t flags;
> > - uint8_t pad[52];
> > + uint64_t mkey;
> > + uint8_t pad[44];
> > } ibnd_config_t;
> >
> > /** =========================================================================
> > diff --git a/libibnetdisc/src/ibnetdisc.c b/libibnetdisc/src/ibnetdisc.c
> > index 8d38ab7..a0cbe3e 100644
> > --- a/libibnetdisc/src/ibnetdisc.c
> > +++ b/libibnetdisc/src/ibnetdisc.c
> > @@ -711,6 +711,7 @@ ibnd_fabric_t *ibnd_discover_fabric(char * ca_name, int ca_port,
> > }
> > mad_rpc_set_timeout(scan.ibmad_port, cfg->timeout_ms);
> > mad_rpc_set_retries(scan.ibmad_port, cfg->retries);
> > + smp_mkey_set(scan.ibmad_port, cfg->mkey);
> >
> > IBND_DEBUG("from %s\n", portid2str(from));
> >
> > diff --git a/man/ibaddr.8 b/man/ibaddr.8
> > index 51f5a1c..86ede0a 100644
> > --- a/man/ibaddr.8
> > +++ b/man/ibaddr.8
> > @@ -73,6 +73,8 @@ using the util_name -h syntax.
> > \-P <ca_port> use the specified ca_port.
> > .PP
> > \-t <timeout_ms> override the default timeout for the solicited mads.
> > +.PP
> > +\-m <M_Key> Use specified M_Key (default 0)
> >
> > Multiple CA/Multiple Port Support
> >
> > diff --git a/src/ibaddr.c b/src/ibaddr.c
> > index 397ef77..8a4425a 100644
> > --- a/src/ibaddr.c
> > +++ b/src/ibaddr.c
> > @@ -149,6 +149,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > if (argc) {
> > if (ib_resolve_portid_str_via(&portid, argv[0], ibd_dest_type,
> > ibd_sm_id, srcport) < 0)
> > diff --git a/src/ibccconfig.c b/src/ibccconfig.c
> > index c81b7fa..1530721 100644
> > --- a/src/ibccconfig.c
> > +++ b/src/ibccconfig.c
> > @@ -636,6 +636,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > if (ib_resolve_portid_str_via(&portid, argv[1], ibd_dest_type,
> > ibd_sm_id, srcport) < 0)
> > IBERROR("can't resolve destination %s", argv[1]);
> > diff --git a/src/ibccquery.c b/src/ibccquery.c
> > index cf8b35a..ecbac8e 100644
> > --- a/src/ibccquery.c
> > +++ b/src/ibccquery.c
> > @@ -416,6 +416,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > if (ib_resolve_portid_str_via(&portid, argv[1], ibd_dest_type,
> > ibd_sm_id, srcport) < 0)
> > IBERROR("can't resolve destination %s", argv[1]);
> > diff --git a/src/ibdiag_common.c b/src/ibdiag_common.c
> > index b22ed60..0901231 100644
> > --- a/src/ibdiag_common.c
> > +++ b/src/ibdiag_common.c
> > @@ -70,6 +70,7 @@ char *ibd_ca = NULL;
> > int ibd_ca_port = 0;
> > int ibd_timeout = 0;
> > uint32_t ibd_ibnetdisc_flags = IBND_CONFIG_MLX_EPI;
> > +uint64_t ibd_mkey;
> >
> > static const char *prog_name;
> > static const char *prog_args;
> > @@ -261,6 +262,9 @@ static int process_opt(int ch, char *optarg)
> > optarg);
> > ibd_sm_id = &sm_portid;
> > break;
> > + case 'm':
> > + ibd_mkey = strtoull(optarg, 0, 0);
> > + break;
> > default:
> > return -1;
> > }
> > @@ -277,6 +281,7 @@ static const struct ibdiag_opt common_opts[] = {
> > {"Guid", 'G', 0, NULL, "use GUID address argument"},
> > {"timeout", 't', 1, "<ms>", "timeout in ms"},
> > {"sm_port", 's', 1, "<lid>", "SM port lid"},
> > + {"m_key", 'm', 1, "<key>", "M_Key to use in request"},
> > {"errors", 'e', 0, NULL, "show send and receive errors"},
> > {"verbose", 'v', 0, NULL, "increase verbosity level"},
> > {"debug", 'd', 0, NULL, "raise debug level"},
> > diff --git a/src/iblinkinfo.c b/src/iblinkinfo.c
> > index 575be0a..54c75d4 100644
> > --- a/src/iblinkinfo.c
> > +++ b/src/iblinkinfo.c
> > @@ -632,12 +632,15 @@ int main(int argc, char **argv)
> > exit(1);
> > }
> >
> > + smp_mkey_set(ibmad_port, ibd_mkey);
> > +
> > if (ibd_timeout) {
> > mad_rpc_set_timeout(ibmad_port, ibd_timeout);
> > config.timeout_ms = ibd_timeout;
> > }
> >
> > config.flags = ibd_ibnetdisc_flags;
> > + config.mkey = ibd_mkey;
> >
> > node_name_map = open_node_name_map(node_name_map_file);
> >
> > diff --git a/src/ibping.c b/src/ibping.c
> > index 16ffb34..c00d4cc 100644
> > --- a/src/ibping.c
> > +++ b/src/ibping.c
> > @@ -216,6 +216,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > if (server) {
> > if (mad_register_server_via(ping_class, 0, 0, oui, srcport) < 0)
> > IBERROR("can't serve class %d on this port",
> > diff --git a/src/ibportstate.c b/src/ibportstate.c
> > index b5a1a98..a2ebcd4 100644
> > --- a/src/ibportstate.c
> > +++ b/src/ibportstate.c
> > @@ -400,6 +400,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > if (ib_resolve_portid_str_via(&portid, argv[0], ibd_dest_type,
> > ibd_sm_id, srcport) < 0)
> > IBERROR("can't resolve destination port %s", argv[0]);
> > diff --git a/src/ibqueryerrors.c b/src/ibqueryerrors.c
> > index f877527..631b65c 100644
> > --- a/src/ibqueryerrors.c
> > +++ b/src/ibqueryerrors.c
> > @@ -914,12 +914,15 @@ int main(int argc, char **argv)
> > if (!ibmad_port)
> > IBERROR("Failed to open port; %s:%d\n", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(ibmad_port, ibd_mkey);
> > +
> > if (ibd_timeout) {
> > mad_rpc_set_timeout(ibmad_port, ibd_timeout);
> > config.timeout_ms = ibd_timeout;
> > }
> >
> > config.flags = ibd_ibnetdisc_flags;
> > + config.mkey = ibd_mkey;
> >
> > node_name_map = open_node_name_map(node_name_map_file);
> >
> > diff --git a/src/ibroute.c b/src/ibroute.c
> > index 7339218..6b4c2ae 100644
> > --- a/src/ibroute.c
> > +++ b/src/ibroute.c
> > @@ -432,6 +432,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > if (!argc) {
> > if (ib_resolve_self_via(&portid, 0, 0, srcport) < 0)
> > IBERROR("can't resolve self addr");
> > diff --git a/src/ibsendtrap.c b/src/ibsendtrap.c
> > index 618706b..2dddb7d 100644
> > --- a/src/ibsendtrap.c
> > +++ b/src/ibsendtrap.c
> > @@ -209,6 +209,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > rc = process_send_trap(trap_name);
> > mad_rpc_close_port(srcport);
> > return rc;
> > diff --git a/src/ibsysstat.c b/src/ibsysstat.c
> > index f007aa3..9f4bfe1 100644
> > --- a/src/ibsysstat.c
> > +++ b/src/ibsysstat.c
> > @@ -342,6 +342,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > if (server) {
> > if (mad_register_server_via(sysstat_class, 1, 0, oui, srcport) <
> > 0)
> > diff --git a/src/ibtracert.c b/src/ibtracert.c
> > index c9f511b..8325536 100644
> > --- a/src/ibtracert.c
> > +++ b/src/ibtracert.c
> > @@ -774,6 +774,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > node_name_map = open_node_name_map(node_name_map_file);
> >
> > if (ib_resolve_portid_str_via(&src_portid, argv[0], ibd_dest_type,
> > diff --git a/src/mcm_rereg_test.c b/src/mcm_rereg_test.c
> > index a764d02..4faa76e 100644
> > --- a/src/mcm_rereg_test.c
> > +++ b/src/mcm_rereg_test.c
> > @@ -451,6 +451,9 @@ int main(int argc, char **argv)
> > if (!srcport)
> > err("Failed to open port");
> >
> > + // If and when mkey is supported here.
> > + //smp_mkey_set(srcport, ibd_mkey);
> > +
> > #if 1
> > ib_resolve_smlid_via(&dport_id, TMO, srcport);
> > #else
> > diff --git a/src/perfquery.c b/src/perfquery.c
> > index c747d11..373a5ad 100644
> > --- a/src/perfquery.c
> > +++ b/src/perfquery.c
> > @@ -729,6 +729,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > if (argc) {
> > if (ib_resolve_portid_str_via(&portid, argv[0], ibd_dest_type,
> > ibd_sm_id, srcport) < 0)
> > diff --git a/src/sminfo.c b/src/sminfo.c
> > index b02906f..a31fdc8 100644
> > --- a/src/sminfo.c
> > +++ b/src/sminfo.c
> > @@ -122,6 +122,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > if (argc) {
> > if (ib_resolve_portid_str_via(&portid, argv[0], ibd_dest_type,
> > 0, srcport) < 0)
> > diff --git a/src/smpquery.c b/src/smpquery.c
> > index cecfa68..9548b17 100644
> > --- a/src/smpquery.c
> > +++ b/src/smpquery.c
> > @@ -480,6 +480,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > node_name_map = open_node_name_map(node_name_map_file);
> >
> > if (ibd_dest_type != IB_DEST_DRSLID) {
> > diff --git a/src/vendstat.c b/src/vendstat.c
> > index 8dbd1ee..adfb0ee 100644
> > --- a/src/vendstat.c
> > +++ b/src/vendstat.c
> > @@ -326,6 +326,8 @@ int main(int argc, char **argv)
> > if (!srcport)
> > IBERROR("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> >
> > + smp_mkey_set(srcport, ibd_mkey);
> > +
> > if (argc) {
> > if (ib_resolve_portid_str_via(&portid, argv[0], ibd_dest_type,
> > ibd_sm_id, srcport) < 0)
>
> --
> 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
--
Ira Weiny
Member of Technical Staff
Lawrence Livermore National Lab
925-423-8008
weiny2-i2BcT+NCU+M@public.gmane.org
--
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:[~2012-03-09 20:09 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-06 20:25 [PATCH 2/3] infiniband-diags: Allow specification of an mkey on the command line Jim Foraker
[not found] ` <1331065551.10889.14.camel-mxTxeWJot8FliZ7u+bvwcg@public.gmane.org>
2012-03-06 22:18 ` [PATCH 2/3 fixed] " Jim Foraker
[not found] ` <1331072283.17729.16.camel-mxTxeWJot8FliZ7u+bvwcg@public.gmane.org>
2012-03-09 13:00 ` Hal Rosenstock
[not found] ` <4F59FEDB.7050605-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2012-03-09 20:09 ` Ira Weiny [this message]
[not found] ` <20120309120931.609233da.weiny2-i2BcT+NCU+M@public.gmane.org>
2012-03-09 21:02 ` Jason Gunthorpe
2012-03-13 12:30 ` Hal Rosenstock
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=20120309120931.609233da.weiny2@llnl.gov \
--to=weiny2-i2bct+ncu+m@public.gmane.org \
--cc=foraker1-i2BcT+NCU+M@public.gmane.org \
--cc=hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@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