* Re: [PATCH] ib_types.h add debug assert
From: Sasha Khapyorsky @ 2010-05-25 11:24 UTC (permalink / raw)
To: Smith, Stan; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <3F6F638B8D880340AB536D29CD4C1E192562EBBC01-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
On 10:49 Fri 21 May , Smith, Stan wrote:
>
> Add a debug assert to catch incorrect MAD attr offset size.
> This proved to be useful in catching incorrect struct sizes as MAD attrs need to be a multiple of 8 bytes.
Could you clarify where was it useful and where such errors were seen?
>
> signed-off-by: stan smith <stan.smith-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Applied (again - by hands). Thanks.
Sasha
>
> diff --git a/opensm/include/iba/ib_types.h b/opensm/include/iba/ib_types.h
> index e1bc102..203c319 100644
> --- a/opensm/include/iba/ib_types.h
> +++ b/opensm/include/iba/ib_types.h
> @@ -4395,6 +4395,7 @@ static inline uint32_t OSM_API ib_get_attr_size(IN const ib_net16_t attr_offset)
>
> static inline ib_net16_t OSM_API ib_get_attr_offset(IN const uint32_t attr_size)
> {
> + CL_ASSERT((attr_size & 0x07) == 0);
> return (cl_hton16((uint16_t) (attr_size >> 3)));
> }
>
--
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
^ permalink raw reply
* Re: [PATCH] osmtest - use helper function
From: Sasha Khapyorsky @ 2010-05-25 11:16 UTC (permalink / raw)
To: Smith, Stan; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <3F6F638B8D880340AB536D29CD4C1E192562EBBB95-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
On 10:23 Fri 21 May , Smith, Stan wrote:
>
> Use defined inline helper function instead of actual implementation.
> Separate implementation from use.
>
> signed-off-by: stan smith <stan.smith-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Applied by hands (the patch is broken too). Thanks.
Sasha
>
> diff --git a/opensm/osmtest/osmtest.c b/opensm/osmtest/osmtest.c
> index 50f94db..5d9c54c 100644
> --- a/opensm/osmtest/osmtest.c
> +++ b/opensm/osmtest/osmtest.c
> @@ -719,7 +719,7 @@ osmtest_get_node_rec(IN osmtest_t * const p_osmt,
> p_context->p_osmt = p_osmt;
> user.comp_mask = IB_NR_COMPMASK_NODEGUID;
> user.attr_id = IB_MAD_ATTR_NODE_RECORD;
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> user.p_attr = &record;
>
> req.query_type = OSMV_QUERY_USER_DEFINED;
> @@ -793,7 +793,7 @@ osmtest_get_node_rec_by_lid(IN osmtest_t * const p_osmt,
> p_context->p_osmt = p_osmt;
> user.comp_mask = IB_NR_COMPMASK_LID;
> user.attr_id = IB_MAD_ATTR_NODE_RECORD;
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> user.p_attr = &record;
>
> req.query_type = OSMV_QUERY_USER_DEFINED;
> @@ -1057,7 +1057,7 @@ osmtest_get_port_rec(IN osmtest_t * const p_osmt,
> p_context->p_osmt = p_osmt;
> user.comp_mask = IB_PIR_COMPMASK_LID;
> user.attr_id = IB_MAD_ATTR_PORTINFO_RECORD;
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> user.p_attr = &record;
>
> req.query_type = OSMV_QUERY_USER_DEFINED;
> @@ -4171,7 +4171,7 @@ osmtest_get_link_rec_by_lid(IN osmtest_t * const p_osmt,
> if (to_lid)
> user.comp_mask |= IB_LR_COMPMASK_TO_LID;
> user.attr_id = IB_MAD_ATTR_LINK_RECORD;
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> user.p_attr = &record;
>
> req.query_type = OSMV_QUERY_USER_DEFINED;
> @@ -4249,7 +4249,7 @@ osmtest_get_guidinfo_rec_by_lid(IN osmtest_t * const p_osmt,
> p_context->p_osmt = p_osmt;
> user.comp_mask = IB_GIR_COMPMASK_LID;
> user.attr_id = IB_MAD_ATTR_GUIDINFO_RECORD;
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> user.p_attr = &record;
>
> req.query_type = OSMV_QUERY_USER_DEFINED;
> @@ -4328,7 +4328,7 @@ osmtest_get_pkeytbl_rec_by_lid(IN osmtest_t * const p_osmt,
> p_context->p_osmt = p_osmt;
> user.comp_mask = IB_PKEY_COMPMASK_LID;
> user.attr_id = IB_MAD_ATTR_PKEY_TBL_RECORD;
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> user.p_attr = &record;
>
> req.query_type = OSMV_QUERY_USER_DEFINED;
> @@ -4407,7 +4407,7 @@ osmtest_get_sw_info_rec_by_lid(IN osmtest_t * const p_osmt,
> if (lid)
> user.comp_mask = IB_SWIR_COMPMASK_LID;
> user.attr_id = IB_MAD_ATTR_SWITCH_INFO_RECORD;
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> user.p_attr = &record;
>
> req.query_type = OSMV_QUERY_USER_DEFINED;
> @@ -4486,7 +4486,7 @@ osmtest_get_lft_rec_by_lid(IN osmtest_t * const p_osmt,
> if (lid)
> user.comp_mask = IB_LFTR_COMPMASK_LID;
> user.attr_id = IB_MAD_ATTR_LFT_RECORD;
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> user.p_attr = &record;
>
> req.query_type = OSMV_QUERY_USER_DEFINED;
> @@ -4565,7 +4565,7 @@ osmtest_get_mft_rec_by_lid(IN osmtest_t * const p_osmt,
> if (lid)
> user.comp_mask = IB_MFTR_COMPMASK_LID;
> user.attr_id = IB_MAD_ATTR_MFT_RECORD;
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> user.p_attr = &record;
>
> req.query_type = OSMV_QUERY_USER_DEFINED;
> @@ -4637,7 +4637,7 @@ osmtest_sminfo_record_request(IN osmtest_t * const p_osmt,
>
> p_context->p_osmt = p_osmt;
> user.attr_id = IB_MAD_ATTR_SMINFO_RECORD;
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> p_sm_info_opt = p_options;
> if (p_sm_info_opt->sm_guid != 0) {
> record.sm_info.guid = p_sm_info_opt->sm_guid;
> @@ -4737,7 +4737,7 @@ osmtest_informinfo_request(IN osmtest_t * const p_osmt,
> p_context->p_osmt = p_osmt;
> user.attr_id = attr_id;
> if (attr_id == IB_MAD_ATTR_INFORM_INFO_RECORD) {
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> p_inform_info_rec_opt = p_options;
> if (p_inform_info_rec_opt->subscriber_gid.unicast.prefix != 0 &&
> p_inform_info_rec_opt->subscriber_gid.unicast.
> @@ -4751,7 +4751,7 @@ osmtest_informinfo_request(IN osmtest_t * const p_osmt,
> user.comp_mask |= IB_IIR_COMPMASK_ENUM;
> user.p_attr = &record;
> } else {
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(rec) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) (sizeof(record)));
> /* comp mask bits below are for InformInfoRecord rather than InformInfo */
> /* as currently no comp mask bits defined for InformInfo!!! */
> user.comp_mask = IB_IIR_COMPMASK_SUBSCRIBE;
> @@ -4900,7 +4900,7 @@ osmtest_validate_single_node_rec_lid(IN osmtest_t * const p_osmt,
> context.p_osmt = p_osmt;
> user.comp_mask = IB_NR_COMPMASK_LID;
> user.attr_id = IB_MAD_ATTR_NODE_RECORD;
> - user.attr_offset = cl_ntoh16((uint16_t) (sizeof(record) >> 3));
> + user.attr_offset = ib_get_attr_offset((uint16_t) sizeof(record));
> user.p_attr = &record;
>
> req.query_type = OSMV_QUERY_USER_DEFINED;
>
--
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
^ permalink raw reply
* Re: [PATCH] use macro for tmp file path
From: Sasha Khapyorsky @ 2010-05-25 11:02 UTC (permalink / raw)
To: Smith, Stan
Cc: ofw-ZwoEplunGu1OwGhvXhtEPSCwEArCW2h5@public.gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <3F6F638B8D880340AB536D29CD4C1E192562EBBB00-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
On 09:51 Fri 21 May , Smith, Stan wrote:
>
> Use defined macro for tmp file path
>
> signed-off-by: stan smith <stan.smith-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
>
The patch is whitespece-mangled.
> diff --git a/opensm/opensm/st.c b/opensm/opensm/st.c
> index ea76038..2d39117 100644
> --- a/opensm/opensm/st.c
> +++ b/opensm/opensm/st.c
> @@ -174,7 +174,7 @@ static int init_st = 0;
>
> static void stat_col()
> {
> - FILE *f = fopen("/var/log/osm_st_col", "w");
> + FILE *f = fopen( OSM_DEFAULT_TMP_DIR "osm_st_col", "w");
I think it was discussed somehow in the past.
Shouldn't this be:
OSM_DEFAULT_TMP_DIR "/osm_st_col"
, so that trailing '/' will not be mandatory in directory define?
Sasha
> fprintf(f, "collision: %d\n", collision);
> fclose(f);
> }
> --
> 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
>
--
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
^ permalink raw reply
* Re: [PATCH] opensm/complib use portable macro syntax
From: Sasha Khapyorsky @ 2010-05-25 10:54 UTC (permalink / raw)
To: Smith, Stan
Cc: ofw-ZwoEplunGu1OwGhvXhtEPSCwEArCW2h5@public.gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <3F6F638B8D880340AB536D29CD4C1E192562EBBAE9-osO9UTpF0USkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
Hi Stan,
On 09:45 Fri 21 May , Smith, Stan wrote:
>
> Use portable macro argument syntax.
>
> signed-of-by: stan smith <stan.smith-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
^^^^^^^^^^^^
Signed-off-by:
>
The patch below is malformed - whitespaces are mangled (please check
your mailer).
Applied by hands. Thanks.
Sasha
> diff --git a/opensm/complib/cl_event_wheel.c b/opensm/complib/cl_event_wheel.c
> index ef6d598..eb894a6 100644
> --- a/opensm/complib/cl_event_wheel.c
> +++ b/opensm/complib/cl_event_wheel.c
> @@ -42,7 +42,7 @@
> #include <complib/cl_event_wheel.h>
> #include <complib/cl_debug.h>
>
> -#define CL_DBG(fmt, arg...)
> +#define CL_DBG(fmt, ...)
>
> static cl_status_t __event_will_age_before(IN const cl_list_item_t *
> const p_list_item, IN void *context)
>
--
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
^ permalink raw reply
* Re: sdp and port 0
From: Amir Vadai @ 2010-05-25 10:08 UTC (permalink / raw)
To: Stijn De Weirdt; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <1274780656.3097.16.camel-qUgQvq5LSkOu2fxVTW3+XQ@public.gmane.org>
Stijn,
If I am not mistaken It should work on 1.5.1.
I tested it here on latest 1.5.2 and it works.
- Amir
On 05/25/2010 12:44 PM, Stijn De Weirdt wrote:
> hello amir,
>
>
>> Listening to port 0 is supported and should work.
>> Which OFED version do you use (issue ofed_info to know)?
>>
>>
> OFED 1.5.1 on rhel5.3 clone. (so libsdp 1.1.100-0.1.g920ea31). i tried
> to compile the ost recent version of libsdp, but i couldn't build it
> separately, and i haen't tried any 1.5.2 prereleases
>
>
>> Does it work for you on a simple test application that only listen on a socket?
>>
>>
> i'll try that asap
>
>
> thanks a lot,
>
> stijn
>
>
>> - Amir
>>
>>
>> On 05/18/2010 01:20 PM, Stijn De Weirdt wrote:
>>
>>> hi all,
>>>
>>> (i'm not on the list, please keep me in cc)
>>>
>>> i am trying SDP with some executable (i don't have the source), but i'm
>>> getting errors with the bind step (output from strace):
>>>
>>> bind(20, {sa_family=AF_INET, sin_port=htons(0),
>>> sin_addr=inet_addr("1.2.3.4")}, 16) = -1 EADDRINUSE (Address already in
>>> use)
>>>
>>> is it possible that a bind to port 0 (ie ask system for free port) is
>>> not supported with libsdp?
>>>
>>> using 'both' as addressfamily in the configfile instead of 'sdp' works
>>> but the tcp is used.
>>> i also tried to add a portrange to avoid port 0 with sdp (ie tcp for
>>> port 0, sdp for the rest), but this doesn't work either (which is not
>>> that surprising).
>>>
>>>
>>> thanks a lot,
>>>
>>> stijn
>>>
>>>
>>
>
--
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
^ permalink raw reply
* Re: sdp and port 0
From: Stijn De Weirdt @ 2010-05-25 9:49 UTC (permalink / raw)
To: Andrea Gozzelino; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Amir Vadai
In-Reply-To: <803144.1274778246034.SLOX.WebMail.wwwrun-XDIR3SKYeFbgKi2NxijLtw@public.gmane.org>
hi andrea,
> I would like to integrate Amir's information about an old discussion.
> In April I have tested SDP with Neteffect cards with OFED 1.5.1 and OFED
> 1.5.2 without success. I have open two bug on Bugzilla (number 2027 and
> 2028 --> LINK:https://bugs.openfabrics.org/).
> The first is closed thanks to Amir.
> On the second one, Steve will work in July.
>
> Stijn, you can find our old discussion about SDP under the subject-title
> "Socket Direct Protocol: help(2)" and "BUG 2027 / 2028" (something like
> that).
> I have also posted some information on the blog link below:
>
> http://nixcraft.com/linux-software/14686-socket-direct-protocol-netperf.html#post25324
>
> I don't know if those information help you, but I think it's important
> read and understand more about SDP.
>
i read the thread and both bug reports, but at first sight i seems
unrelated. the hardware i'm trying it on is IB DDR ConnectX (mlx4)
> Can I ask you why do you use SDP in your activity?
we have some legacy binary-only code that we are trying to speedup. it
uses TCP to exchange large amounts of data between processes, so we are
trying sdp if it can help with this.
thanks a lot,
stijn
>
> Thanks again to Amir.
> Regards,
> Andrea
>
> Andrea Gozzelino
>
> INFN - Laboratori Nazionali di Legnaro (LNL)
> Viale dell'Universita' 2
> I-35020 - Legnaro (PD)- ITALIA
> Tel: +39 049 8068346
> Fax: +39 049 641925
> Mail: andrea.gozzelino-PK20h7lG/Rc1GQ1Ptb7lUw@public.gmane.org
>
>
>
> On May 25, 2010 10:34 AM, Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org> wrote:
>
> > Stijn Hi,
> >
> > Listening to port 0 is supported and should work.
> > Which OFED version do you use (issue ofed_info to know)?
> >
> > Does it work for you on a simple test application that only listen on
> > a socket?
> >
> > - Amir
> >
> >
> > On 05/18/2010 01:20 PM, Stijn De Weirdt wrote:
> > > hi all,
> > >
> > > (i'm not on the list, please keep me in cc)
> > >
> > > i am trying SDP with some executable (i don't have the source), but
> > > i'm
> > > getting errors with the bind step (output from strace):
> > >
> > > bind(20, {sa_family=AF_INET, sin_port=htons(0),
> > > sin_addr=inet_addr("1.2.3.4")}, 16) = -1 EADDRINUSE (Address already
> > > in
> > > use)
> > >
> > > is it possible that a bind to port 0 (ie ask system for free port)
> > > is
> > > not supported with libsdp?
> > >
> > > using 'both' as addressfamily in the configfile instead of 'sdp'
> > > works
> > > but the tcp is used.
> > > i also tried to add a portrange to avoid port 0 with sdp (ie tcp for
> > > port 0, sdp for the rest), but this doesn't work either (which is
> > > not
> > > that surprising).
> > >
> > >
> > > thanks a lot,
> > >
> > > stijn
> > >
> >
> > --
> > 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
> >
>
>
>
>
--
http://hasthelhcdestroyedtheearth.com/
--
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
^ permalink raw reply
* Re: sdp and port 0
From: Stijn De Weirdt @ 2010-05-25 9:44 UTC (permalink / raw)
To: Amir Vadai; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <4BFB8B8A.6080205-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
hello amir,
> Listening to port 0 is supported and should work.
> Which OFED version do you use (issue ofed_info to know)?
>
OFED 1.5.1 on rhel5.3 clone. (so libsdp 1.1.100-0.1.g920ea31). i tried
to compile the ost recent version of libsdp, but i couldn't build it
separately, and i haen't tried any 1.5.2 prereleases
> Does it work for you on a simple test application that only listen on a socket?
>
i'll try that asap
thanks a lot,
stijn
> - Amir
>
>
> On 05/18/2010 01:20 PM, Stijn De Weirdt wrote:
> > hi all,
> >
> > (i'm not on the list, please keep me in cc)
> >
> > i am trying SDP with some executable (i don't have the source), but i'm
> > getting errors with the bind step (output from strace):
> >
> > bind(20, {sa_family=AF_INET, sin_port=htons(0),
> > sin_addr=inet_addr("1.2.3.4")}, 16) = -1 EADDRINUSE (Address already in
> > use)
> >
> > is it possible that a bind to port 0 (ie ask system for free port) is
> > not supported with libsdp?
> >
> > using 'both' as addressfamily in the configfile instead of 'sdp' works
> > but the tcp is used.
> > i also tried to add a portrange to avoid port 0 with sdp (ie tcp for
> > port 0, sdp for the rest), but this doesn't work either (which is not
> > that surprising).
> >
> >
> > thanks a lot,
> >
> > stijn
> >
>
--
http://hasthelhcdestroyedtheearth.com/
--
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
^ permalink raw reply
* Re: sdp and port 0
From: Andrea Gozzelino @ 2010-05-25 9:04 UTC (permalink / raw)
To: Stijn De Weirdt; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Amir Vadai
In-Reply-To: <4BFB8B8A.6080205-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Hi all,
Hi Stijn,
I would like to integrate Amir's information about an old discussion.
In April I have tested SDP with Neteffect cards with OFED 1.5.1 and OFED
1.5.2 without success. I have open two bug on Bugzilla (number 2027 and
2028 --> LINK:https://bugs.openfabrics.org/).
The first is closed thanks to Amir.
On the second one, Steve will work in July.
Stijn, you can find our old discussion about SDP under the subject-title
"Socket Direct Protocol: help(2)" and "BUG 2027 / 2028" (something like
that).
I have also posted some information on the blog link below:
http://nixcraft.com/linux-software/14686-socket-direct-protocol-netperf.html#post25324
I don't know if those information help you, but I think it's important
read and understand more about SDP.
Can I ask you why do you use SDP in your activity?
Thanks again to Amir.
Regards,
Andrea
Andrea Gozzelino
INFN - Laboratori Nazionali di Legnaro (LNL)
Viale dell'Universita' 2
I-35020 - Legnaro (PD)- ITALIA
Tel: +39 049 8068346
Fax: +39 049 641925
Mail: andrea.gozzelino-PK20h7lG/Rc1GQ1Ptb7lUw@public.gmane.org
On May 25, 2010 10:34 AM, Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org> wrote:
> Stijn Hi,
>
> Listening to port 0 is supported and should work.
> Which OFED version do you use (issue ofed_info to know)?
>
> Does it work for you on a simple test application that only listen on
> a socket?
>
> - Amir
>
>
> On 05/18/2010 01:20 PM, Stijn De Weirdt wrote:
> > hi all,
> >
> > (i'm not on the list, please keep me in cc)
> >
> > i am trying SDP with some executable (i don't have the source), but
> > i'm
> > getting errors with the bind step (output from strace):
> >
> > bind(20, {sa_family=AF_INET, sin_port=htons(0),
> > sin_addr=inet_addr("1.2.3.4")}, 16) = -1 EADDRINUSE (Address already
> > in
> > use)
> >
> > is it possible that a bind to port 0 (ie ask system for free port)
> > is
> > not supported with libsdp?
> >
> > using 'both' as addressfamily in the configfile instead of 'sdp'
> > works
> > but the tcp is used.
> > i also tried to add a portrange to avoid port 0 with sdp (ie tcp for
> > port 0, sdp for the rest), but this doesn't work either (which is
> > not
> > that surprising).
> >
> >
> > thanks a lot,
> >
> > stijn
> >
>
> --
> 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
>
--
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
^ permalink raw reply
* Re: sdp and port 0
From: Amir Vadai @ 2010-05-25 8:34 UTC (permalink / raw)
To: Stijn De Weirdt; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1274178031.6513.22.camel-qUgQvq5LSkOu2fxVTW3+XQ@public.gmane.org>
Stijn Hi,
Listening to port 0 is supported and should work.
Which OFED version do you use (issue ofed_info to know)?
Does it work for you on a simple test application that only listen on a socket?
- Amir
On 05/18/2010 01:20 PM, Stijn De Weirdt wrote:
> hi all,
>
> (i'm not on the list, please keep me in cc)
>
> i am trying SDP with some executable (i don't have the source), but i'm
> getting errors with the bind step (output from strace):
>
> bind(20, {sa_family=AF_INET, sin_port=htons(0),
> sin_addr=inet_addr("1.2.3.4")}, 16) = -1 EADDRINUSE (Address already in
> use)
>
> is it possible that a bind to port 0 (ie ask system for free port) is
> not supported with libsdp?
>
> using 'both' as addressfamily in the configfile instead of 'sdp' works
> but the tcp is used.
> i also tried to add a portrange to avoid port 0 with sdp (ie tcp for
> port 0, sdp for the rest), but this doesn't work either (which is not
> that surprising).
>
>
> thanks a lot,
>
> stijn
>
--
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
^ permalink raw reply
* git.openfabrics.org out of disk space
From: Davis, Arlin R @ 2010-05-25 8:02 UTC (permalink / raw)
To: ewg-ZwoEplunGu1OwGhvXhtEPSCwEArCW2h5@public.gmane.org
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Can someone free up some space?
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 151873632 144158864 0 100% /
varrun 513028 80 512948 1% /var/run
varlock 513028 8 513020 1% /var/lock
udev 513028 84 512944 1% /dev
devshm 513028 0 513028 0% /dev/shm--
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
^ permalink raw reply
* [ANNOUNCE] dapl-2.0.28 and compat-dapl-1.2.17 release
From: Davis, Arlin R @ 2010-05-25 8:00 UTC (permalink / raw)
To: ofw_list, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
ewg-ZwoEplunGu1OwGhvXhtEPSCwEArCW2h5@public.gmane.org
Cc: Vladimir Sokolovsky
New release for uDAPL v2.0 (2.0.28) and v1.2 (1.2.17) available at:
http://www.openfabrics.org/downloads/dapl
Latest Packages (see ChangeLog for details):
md5sum: 3f914d57312110cc795d37c28d03b26c compat-dapl-1.2.17.tar.gz
md5sum: d74a5b1817a5413be2603cfd03e944d6 dapl-2.0.28.tar.gz
Vlad, please pull into OFED 1.5.2 RC1:
For 1.2 and 2.0 support on same system, including development, install RPM packages as follow:
dapl-2.0.28-1
dapl-utils-2.0.28-1
dapl-devel-2.0.28-1
dapl-debuginfo-2.0.28-1
compat-dapl-1.2.17-1
compat-dapl-devel-1.2.17-1
Summary of v2.0 and v1.2 changes:
Release 2.0.28 fixes (OFED 1.5.2):
config: add conditional check for new verbs port_attr.link_layer
dat.conf: update manpage with latest provider information, add examples
cma, scm: new provider entries for Mellanox RDMA over Ethernet device
dapltest: server info devicename is not large enough for dapl_name storage
windows: comp_channel.cpp is included by util.c in the openib_common.
windows: need to include linux directory to pick up _errno.h
scm: check for hca object before signaling thread
scm, cma: fini code can be called multiple times and hang via fork
scm: add option to use other network devices with environment variable DAPL_SCM_NETDEV
scm: cr_thread occasionally segv's when disconnecting all-to-all MPI static connections
scm: SOCKOPT ERR Connection timed out on large clusters
ucm: UD mode, active side cm object released to soon, the RTU could be lost.
cma, ucm: cleanup issues with dat_ep_free on a connected EP without disconnecting.
ucm: increase default UCM retry count for connect reply to 15
scm: remove modify QP to ERR state during disconnect on UD type QP
windows: remove static paths from dapltest scripts
common: EP links to EVD, PZ incorrectly released before provider CM objects freed.
common: remove unnecessary lmr lkey hashing and duplicate lkey checking
ibal: output completion code in deciaml & hex as intended
ucm: set timer during RTU_PENDING state change.
ucm: fix issues with new EP to CM linking changes
scm: add EP locking and cm checking to socket cm disconnect
scm: new cm_ep linking broke UD mode over socket cm
openib common: add some debug prints to help isolate QP type issues
common: dapl_event_str function missing 2 IB extended events
common: dat_ep_connect should not set timer UD endpoints
ucm: fix error path during accept_usr reply failure
ibal: add missing windows makefile
ibal: changes for EP to CM linking and synchronization.
scm: add support for canceling conn request that times out.
scm, ucm: consolidate dat event/provider event translation
common: missed linking changes from atomic to acquire/release
common: add CM-EP linking to support mutiple CM's and proper protection during destruction
Release 1.2.17 fixes (OFED 1.5.2):
config: add conditional check for new verbs port_attr.link_layer
cma, scm: new provider entries for Mellanox RDMA over Ethernet device for uDAPL v1.2
cma: memory leak of verbs CQ and completion channels created during dat_ia_open
cma: memory leak of FD's (pipe) created during dat_evd_create
--
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
^ permalink raw reply
* Re: [ANNOUNCE] librdmacm 1.0.12
From: Or Gerlitz @ 2010-05-25 7:26 UTC (permalink / raw)
To: Sean Hefty
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, 'Vladimir Sokolovsky'
In-Reply-To: <CE35DBA4CC524BD3BDA61C7DE2BD39CD-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
Sean Hefty wrote:
> I've pushed out release 1.0.12 of librdmacm.
Hi Sean, below is a tiny patch which will help direct users to the correct mailing list
set the mailing list info to be linux-rdma instead of the ofa general list
signed-off-by: Or Gerlitz <ogerlitz-smomgflXvOZWk0Htik3J/w@public.gmane.org>
diff --git a/configure.in b/configure.in
index d6c4a62..d0f2623 100644
--- a/configure.in
+++ b/configure.in
@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
-AC_INIT(librdmacm, 1.0.12, general-ZwoEplunGu1OwGhvXhtEPSCwEArCW2h5@public.gmane.org)
+AC_INIT(librdmacm, 1.0.12, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org)
AC_CONFIG_SRCDIR([src/cma.c])
AC_CONFIG_AUX_DIR(config)
AM_CONFIG_HEADER(config.h)
--
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
^ permalink raw reply related
* nes: bug in phy_lock usage?
From: Roland Dreier @ 2010-05-25 4:32 UTC (permalink / raw)
To: Chien Tung; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
It seems that ce6e74f2 ("RDMA/nes: Make nesadapter->phy_lock usage
consistent") maybe introduced a locking bug. sparse warns:
drivers/infiniband/hw/nes/nes_hw.c:2642:9: warning: context imbalance in 'nes_process_mac_intr' - different lock contexts for basic block
And indeed in nes_process_mac_intr(), you do
spin_lock_irqsave(&nesadapter->phy_lock, flags);
at the very beginning, but then the unlock only happens inside
if (nesadapter->mac_sw_state[mac_number] != NES_MAC_SW_IDLE) {
or inside
if (mac_status & (NES_MAC_INT_LINK_STAT_CHG | NES_MAC_INT_XGMII_EXT)) {
so it seems it is possible to return from this function with the lock
held.
- R.
--
Roland Dreier <rolandd-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
--
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
^ permalink raw reply
* Re: [PATCH v4 11/11] IB/qib: Add qib_verbs.h
From: Roland Dreier @ 2010-05-25 4:22 UTC (permalink / raw)
To: Ralph Campbell; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <20100519002747.11950.37106.stgit-/vjeY7uYZjrPXfVEPVhPGq6RkeBMCJyt@public.gmane.org>
OK, I merged all the qib-related stuff up and put it in my for-next
branch. I expect ot send it to Linus soon.
--
Roland Dreier <rolandd-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
--
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
^ permalink raw reply
* Re: [PATCH] RDMA/nes: AE for closed QP causes crash
From: Roland Dreier @ 2010-05-25 4:21 UTC (permalink / raw)
To: Faisal Latif; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <20100521215503.GA4256@flatif-MOBL1>
thanks, applied both nes patches.
--
Roland Dreier <rolandd-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
--
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
^ permalink raw reply
* Re: [PATCH 01/11] RDMA/cxgb4: Detach from the LLD after unregistering with the RDMA core.
From: Roland Dreier @ 2010-05-25 4:08 UTC (permalink / raw)
To: Steve Wise; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <20100520215727.32394.90669.stgit-T4OLL4TyM9aNDNWfRnPdfg@public.gmane.org>
thanks, applied all 11.
--
Roland Dreier <rolandd-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
--
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
^ permalink raw reply
* [PATCH] opensm - cleanup
From: Stan C. Smith @ 2010-05-25 3:58 UTC (permalink / raw)
To: Sasha Khapyorsky; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
Cleanup __WIN__ clauses by using predefined macros.
signed-off-by: stan smith <stan.smith-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
--- a/opensm/include/opensm/osm_base.h 2010-05-22 14:26:26.000000000 -0700
+++ b/opensm/include/opensm/osm_base.h 2010-05-11 17:47:37.886597800 -0700
@@ -181,7 +181,7 @@
* SYNOPSIS
*/
#ifdef __WIN__
-#define OSM_DEFAULT_TMP_DIR GetOsmTempPath()
+#define OSM_DEFAULT_TMP_DIR "%TEMP%\\"
#else
#define OSM_DEFAULT_TMP_DIR "/var/log/"
#endif
@@ -196,7 +196,7 @@
* SYNOPSIS
*/
#ifdef __WIN__
-#define OSM_DEFAULT_CACHE_DIR GetOsmCachePath()
+#define OSM_DEFAULT_CACHE_DIR "%TEMP%"
#else
#define OSM_DEFAULT_CACHE_DIR "/var/cache/opensm"
#endif
@@ -211,7 +211,7 @@
* SYNOPSIS
*/
#ifdef __WIN__
-#define OSM_DEFAULT_LOG_FILE strcat(GetOsmTempPath(), "osm.log")
+#define OSM_DEFAULT_LOG_FILE OSM_DEFAULT_TMP_DIR "osm.log"
#else
#define OSM_DEFAULT_LOG_FILE "/var/log/opensm.log"
#endif
@@ -226,15 +226,13 @@
*
* SYNOPSIS
*/
-#ifdef __WIN__
-#define OSM_DEFAULT_CONFIG_FILE strcat(GetOsmCachePath(), "opensm.conf")
-#elif defined(HAVE_DEFAULT_OPENSM_CONFIG_FILE)
+#if defined(HAVE_DEFAULT_OPENSM_CONFIG_FILE)
#define OSM_DEFAULT_CONFIG_FILE HAVE_DEFAULT_OPENSM_CONFIG_FILE
#elif defined (OPENSM_CONFIG_DIR)
#define OSM_DEFAULT_CONFIG_FILE OPENSM_CONFIG_DIR "/opensm.conf"
#else
#define OSM_DEFAULT_CONFIG_FILE "/etc/opensm/opensm.conf"
-#endif /* __WIN__ */
+#endif
/***********/
/****d* OpenSM: Base/OSM_DEFAULT_PARTITION_CONFIG_FILE
@@ -246,15 +244,13 @@
*
* SYNOPSIS
*/
-#ifdef __WIN__
-#define OSM_DEFAULT_PARTITION_CONFIG_FILE strcat(GetOsmCachePath(), "osm-partitions.conf")
-#elif defined(HAVE_DEFAULT_PARTITION_CONFIG_FILE)
+#if defined(HAVE_DEFAULT_PARTITION_CONFIG_FILE)
#define OSM_DEFAULT_PARTITION_CONFIG_FILE HAVE_DEFAULT_PARTITION_CONFIG_FILE
#elif defined(OPENSM_CONFIG_DIR)
#define OSM_DEFAULT_PARTITION_CONFIG_FILE OPENSM_CONFIG_DIR "/partitions.conf"
#else
#define OSM_DEFAULT_PARTITION_CONFIG_FILE "/etc/opensm/partitions.conf"
-#endif /* __WIN__ */
+#endif
/***********/
/****d* OpenSM: Base/OSM_DEFAULT_QOS_POLICY_FILE
@@ -266,15 +262,13 @@
*
* SYNOPSIS
*/
-#ifdef __WIN__
-#define OSM_DEFAULT_QOS_POLICY_FILE strcat(GetOsmCachePath(), "osm-qos-policy.conf")
-#elif defined(HAVE_DEFAULT_QOS_POLICY_FILE)
+#if defined(HAVE_DEFAULT_QOS_POLICY_FILE)
#define OSM_DEFAULT_QOS_POLICY_FILE HAVE_DEFAULT_QOS_POLICY_FILE
#elif defined(OPENSM_CONFIG_DIR)
#define OSM_DEFAULT_QOS_POLICY_FILE OPENSM_CONFIG_DIR "/qos-policy.conf"
#else
#define OSM_DEFAULT_QOS_POLICY_FILE "/etc/opensm/qos-policy.conf"
-#endif /* __WIN__ */
+#endif
/***********/
/****d* OpenSM: Base/OSM_DEFAULT_PREFIX_ROUTES_FILE
@@ -286,9 +280,7 @@
*
* SYNOPSIS
*/
-#ifdef __WIN__
-#define OSM_DEFAULT_PREFIX_ROUTES_FILE strcat(GetOsmCachePath(), "osm-prefix-routes.conf")
-#elif defined(HAVE_DEFAULT_PREFIX_ROUTES_FILE)
+#if defined(HAVE_DEFAULT_PREFIX_ROUTES_FILE)
#define OSM_DEFAULT_PREFIX_ROUTES_FILE HAVE_DEFAULT_PREFIX_ROUTES_FILE
#elif defined(OPENSM_CONFIG_DIR)
#define OSM_DEFAULT_PREFIX_ROUTES_FILE OPENSM_CONFIG_DIR "/prefix-routes.conf"
--
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
^ permalink raw reply
* RE: [ANNOUNCE] librdmacm 1.0.12
From: Hefty, Sean @ 2010-05-24 22:24 UTC (permalink / raw)
To: Davis, Arlin R, Vladimir Sokolovsky
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <E3280858FA94444CA49D2BA02341C983C713ACAA-osO9UTpF0URZtRGVdHMbwrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
>>librdmacmincludedir = $(includedir)/rdma $(includedir)/infiniband
>>
>>This cause *.h files to be installed under "/usr/include/rdma\
>>/usr/include/infiniband":
>>
>>/usr/include/rdma /usr/include/infiniband/ib.h
>>/usr/include/rdma /usr/include/infiniband/rdma_cma.h
>>/usr/include/rdma /usr/include/infiniband/rdma_cma_abi.h
>>/usr/include/rdma /usr/include/infiniband/rdma_verbs.h
>
>Please re-pull the package and retry.
The installation issue should be corrected in the latest package.
Also, a new config option was added to the librdmacm to allow for support for IB ACM. I'm not sure of the best way to expose the option to users through the OFED install scripts. Requiring users to build a custom RPM if they want to enable IB ACM is fine for me.
I also placed a release of ib_acm on the OFA server to include in OFED 1.5.2. It should always be safe to install ib_acm, but the librdmacm will not make use of it unless the above mentioned config option has been set. I will look at the install scripts to see what might be a good way to enable/disable IB ACM, but if you have any ideas, please let me know. (It should be disabled by default.)
- Sean
--
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
^ permalink raw reply
* Re: [PATCH] opensm/qos.c: Revert port ranges for calls to sl2vl_update_table().
From: Jim Schutt @ 2010-05-24 21:42 UTC (permalink / raw)
To: Hal Rosenstock
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org
In-Reply-To: <AANLkTimzCMA8sdpT7W7bpBnb0fqdEhA5I3j-6Vqc7S2L-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
Hi Hal,
On Mon, 2010-05-24 at 12:03 -0600, Hal Rosenstock wrote:
> Hi Jim,
>
> On Fri, May 21, 2010 at 4:29 PM, Jim Schutt <jaschut-4OHPYypu0djtX7QSmKvirg@public.gmane.org> wrote:
> >
> > Sorry, I somehow got this wrong.
> >
> > Corrected patch below.
> >
> > -- Jim
> >
> > On Fri, 2010-05-21 at 14:18 -0600, Jim Schutt wrote:
> >> Before commit 051a1dd5 (opensm/osm_qos.c: split switch external and end
> >> ports setup), osm_qos_setup() would end up calling sl2vl_update_table()
> >> for output ports 1-N, and inport ports 0-N.
> >>
> >> Commit 051a1dd5 changed this around to be output ports 0-N, and input
> >> ports 1-N, and an InfiniScale IV based fabric would log lots of errors
> >> like these:
> >>
> >> log_rcv_cb_error: ERR 3111: Received MAD with error status = 0x1C
> >> SubnGetResp(SLtoVLMappingTable), attr_mod 0x2300, TID 0xad069
> >> Initial path: 0,1,1,4,13 Return path: 0,25,1,7,10
> >>
> >> The attr_mod in every such message has 0x00 in the least significant
> >> byte.
>
> This is the output port.
>
> >> With the port ranges restored to their old values, the above log messages
> >> stop.
>
> Is this with base or enhanced port 0 ? I'm assuming base. See comment below.
See extra patch below.
>
> Also, what firmware version is in use ?
flint reports the FW version as 7.2.0
>
> >> Signed-off-by: Jim Schutt <jaschut-4OHPYypu0djtX7QSmKvirg@public.gmane.org>
> >> ---
> >> opensm/opensm/osm_qos.c | 8 ++++----
> >> 1 files changed, 4 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c
> >> index 6bbbfa2..b8c3111 100644
> >> --- a/opensm/opensm/osm_qos.c
> >> +++ b/opensm/opensm/osm_qos.c
> >> @@ -230,12 +230,12 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node,
> >> &qcfg->sl2vl);
> >> }
> >>
> >> - for (i = 1; i < num_ports; i++) {
> >> + for (i = 0; i < num_ports; i++) {
> >> p = osm_node_get_physp_ptr(node, i);
> >> force_update = p->need_update || sm->p_subn->need_update;
> >> - for (j = 0; j < num_ports; j++)
> >> - if (sl2vl_update_table(sm, p, i, i << 8 | j,
> >> - force_update, &qcfg->sl2vl))
> >> + for (j = 1; j < num_ports; j++)
> >> + if (sl2vl_update_table(sm, p, i, j, force_update,
> >> + &qcfg->sl2vl))
> >> ret = -1;
> >> }
> >>
> >
> > diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c
> > index 6bbbfa2..7d76c75 100644
> > @@ -230,10 +230,10 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node,
> > &qcfg->sl2vl);
> > }
> >
> > - for (i = 1; i < num_ports; i++) {
> > + for (i = 0; i < num_ports; i++) {
> > p = osm_node_get_physp_ptr(node, i);
> > force_update = p->need_update || sm->p_subn->need_update;
> > - for (j = 0; j < num_ports; j++)
> > + for (j = 1; j < num_ports; j++)
> > if (sl2vl_update_table(sm, p, i, i << 8 | j,
> > force_update, &qcfg->sl2vl))
> > ret = -1;
> >
>
> I think the start for j depends on whether it is base or enhanced port
> 0. Start should be 0 for enhanced and 1 for base.
Ah. I see now in the IBA 1.2.1 spec, Table 146 PortInfo, p 837, that
only an enhanced SP0 supports OperationalVLs. So if a base SP0 doesn't
support it, such port also doesn't support VLs, and it makes sense that
you shouldn't attempt to program SL2VL maps.
Is that what you're thinking?
I added this patch on top of above, and things still work w/ no
error messages. I guess that means our InfiniSwitch IV gear has
only base SP0.
--- a/opensm/opensm/osm_qos.c
+++ b/opensm/opensm/osm_qos.c
@@ -233,7 +233,8 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node,
for (i = 0; i < num_ports; i++) {
p = osm_node_get_physp_ptr(node, i);
force_update = p->need_update || sm->p_subn->need_update;
- for (j = 1; j < num_ports; j++)
+ j = ib_switch_info_is_enhanced_port0(&node->sw->switch_info) ? 0 : 1;
+ for (; j < num_ports; j++)
if (sl2vl_update_table(sm, p, i, i << 8 | j,
force_update, &qcfg->sl2vl))
ret = -1;
Does that look OK to you?
Thanks -- Jim
>
> -- Hal
>
--
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
^ permalink raw reply
* Medical Equipment Suppliers marketing email list
From: Lon D Pagan @ 2010-05-24 21:23 UTC (permalink / raw)
To: bcobb-WMnGuWdWw3mVG/+Gxqlb8De48wsgrGvP,
vnrlpkbp-wL/NILBShxhWk0Htik3J/w,
dpffljimpvp-kLEIDHXh8rjQT0dZR+AlfA,
info-CdUcWWgNhVvsz0rkmZMk99BPR1lH4CV8,
bellemitchell702-Re5JQEeQqe8AvxtiuMwx3w
Here's a business list package on sale this week only:
Business List Gold Package
Real Estate Agents - 1 million records with emails
US New Business Database - 4.8 million records all with emails
Manufacturers Database - 1,057,119 records with 476,509 emails
All complete lists above: $296
There are more packages and not just for business. we also have healthcare, consumers and more. Contact me here for more info or to get samples: Timmy.Prince-liJpTnL9eBx/vwenFoFXOv8+0UxHXcjY@public.gmane.org
Send us an email to disappear-liJpTnL9eBx/vwenFoFXOv8+0UxHXcjY@public.gmane.org we will discontinue from the list
--
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
^ permalink raw reply
* Re: [PATCH/RFC] opensm: toggle sweeping V2
From: Arthur Kepner @ 2010-05-24 21:18 UTC (permalink / raw)
To: Sasha Khapyorsky
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Dale.R.Talcott-NSQ8wuThN14
In-Reply-To: <20100522170431.GU28549@me>
On Sat, May 22, 2010 at 08:04:31PM +0300, Sasha Khapyorsky wrote:
> .....
> I still not understand what is wrong with running OpenSM with sweep
> disabled and restarting when a fabric is ready. But anyway a new
> console command looks less aggressive for me than signaling... :)
I think that they found that restarting opensm disrupted running jobs
much more than just pausing/resuming normal sweeping. By pausing/resuming,
they were able to grow the cluster without interrupting the jobs which
were running on the old portion of the cluster.
> .....
> The questions about patch is below.
>
> > .....
> > /* do a sweep if we received a trap */
> > if (sm->p_subn->opt.sweep_on_trap) {
>
> > - /* if this is trap number 128 or run_heavy_sweep is TRUE -
> > - update the force_heavy_sweep flag of the subnet.
> > - Sweep also on traps 144 - these traps signal a change of
> > - certain port capabilities.
> > - TODO: In the future this can be changed to just getting
> > - PortInfo on this port instead of sweeping the entire subnet. */
> > - if (ib_notice_is_generic(p_ntci) &&
> > - (cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 128 ||
> > - cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 144 ||
> > - run_heavy_sweep)) {
> > - OSM_LOG(sm->p_log, OSM_LOG_VERBOSE,
> > - "Forcing heavy sweep. Received trap:%u\n",
> > + if (!sm->p_subn->sweeping_enabled) {
> > + OSM_LOG(sm->p_log, OSM_LOG_DEBUG,
> > + "sweeping disabled - ignoring trap %u\n",
> > cl_ntoh16(p_ntci->g_or_v.generic.trap_num));
>
> Isn't this case already handled in osm_state_mgr_process() and this code
> addition in osm_trap_rcv.c redundant?
It is redundant. The only reason for it is to log the additional message
about the ignored trap, instead of the less specific "sweeping disabled -
ignoring signal ...." message.
--
Arthur
--
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
^ permalink raw reply
* [PATCH] infiniband-diags/vendstat: add config space access options
From: Sasha Khapyorsky @ 2010-05-24 21:07 UTC (permalink / raw)
To: linux-rdma; +Cc: Eli Dorfman, Yevgeny Kliteynik
In-Reply-To: <20100524205611.GJ28549@me>
Add Mellanox vendor class config space records access options (-R for
read and -W for write). Example of usage:
vendstat -R 0x12345,0xffff <lid> - will read low 16 bits of config
space record at address 0x12345
vendstat -W 0x12345,0,0xfff <lid> - will zero low 12 bits of config
space record at address 0x12345
Signed-off-by: Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org>
---
infiniband-diags/src/vendstat.c | 45 +++++++++++++++++++++++++++++++++++++++
1 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/infiniband-diags/src/vendstat.c b/infiniband-diags/src/vendstat.c
index 0de5722..0add06c 100644
--- a/infiniband-diags/src/vendstat.c
+++ b/infiniband-diags/src/vendstat.c
@@ -144,6 +144,27 @@ static int do_vendor(ib_portid_t *portid, struct ibmad_port *srcport,
return 0;
}
+static unsigned int conf_addr, conf_val, conf_mask;
+
+static void do_config_space_record(ib_portid_t *portid, unsigned set)
+{
+ is3_config_space_t cs;
+
+ memset(&cs, 0, sizeof(cs));
+ cs.record[0].address = htonl(conf_addr);
+ cs.record[0].data = htonl(conf_val);
+ cs.record[0].mask = htonl(conf_mask);
+
+ if (do_vendor(portid, srcport, IB_MLX_VENDOR_CLASS,
+ set ? IB_MAD_METHOD_SET : IB_MAD_METHOD_GET,
+ IB_MLX_IS3_CONFIG_SPACE_ACCESS, 2 << 22 | 1 << 16, &cs))
+ IBERROR("cannot %s config space record", set ? "set" : "get");
+
+ printf("Config space record at 0x%x: 0x%x\n",
+ ntohl(cs.record[0].address),
+ ntohl(cs.record[0].data & cs.record[0].mask));
+}
+
static void counter_groups_info(ib_portid_t * portid, int port)
{
char buf[1024];
@@ -203,6 +224,7 @@ static void config_counter_groups(ib_portid_t * portid, int port)
}
static int general_info, xmit_wait, counter_group_info, config_counter_group;
+static unsigned int config_space_read, config_space_write;
static int process_opt(void *context, int ch, char *optarg)
{
@@ -223,6 +245,22 @@ static int process_opt(void *context, int ch, char *optarg)
if (ret != 2)
return -1;
break;
+ case 'R':
+ config_space_read = 1;
+ ret = sscanf(optarg, "%x,%x", &conf_addr, &conf_mask);
+ if (ret < 1)
+ return -1;
+ else if (ret == 1)
+ conf_mask = 0xffffffff;
+ break;
+ case 'W':
+ config_space_write = 1;
+ ret = sscanf(optarg, "%x,%x,%x", &conf_addr, &conf_val, &conf_mask);
+ if (ret < 2)
+ return -1;
+ else if (ret == 2)
+ conf_mask = 0xffffffff;
+ break;
default:
return -1;
}
@@ -244,6 +282,8 @@ int main(int argc, char **argv)
{"w", 'w', 0, NULL, "show IS3 port xmit wait counters"},
{"i", 'i', 0, NULL, "show IS4 counter group info"},
{"c", 'c', 1, "<num,num>", "configure IS4 counter groups"},
+ {"Read", 'R', 1, "<addr,mask>", "Read configuration space record at addr"},
+ {"Write", 'W', 1, "<addr,val,mask>", "Write configuration space record at addr"},
{0}
};
@@ -289,6 +329,11 @@ int main(int argc, char **argv)
exit(0);
}
+ if (config_space_read || config_space_write) {
+ do_config_space_record(&portid, config_space_write);
+ exit(0);
+ }
+
/* These are Mellanox specific vendor MADs */
/* but vendors change the VendorId so how know for sure ? */
/* Only General Info and Port Xmit Wait Counters */
--
1.7.0.4
--
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
^ permalink raw reply related
* [PATCH] infiniband-diags/vendstat: code simplifications
From: Sasha Khapyorsky @ 2010-05-24 20:56 UTC (permalink / raw)
To: linux-rdma; +Cc: Eli Dorfman
Simplify and consolidate the code by using helper function do_vendor().
Signed-off-by: Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org>
---
infiniband-diags/src/vendstat.c | 94 ++++++++++++++++++--------------------
1 files changed, 45 insertions(+), 49 deletions(-)
diff --git a/infiniband-diags/src/vendstat.c b/infiniband-diags/src/vendstat.c
index abff83a..0de5722 100644
--- a/infiniband-diags/src/vendstat.c
+++ b/infiniband-diags/src/vendstat.c
@@ -97,14 +97,12 @@ typedef struct {
} is3_general_info_t;
typedef struct {
- uint32_t address;
- uint32_t data;
- uint32_t mask;
-} is3_record_t;
-
-typedef struct {
uint8_t reserved[8];
- is3_record_t record[18];
+ struct is3_record {
+ uint32_t address;
+ uint32_t data;
+ uint32_t mask;
+ } record[18];
} is3_config_space_t;
#define COUNTER_GROUPS_NUM 2
@@ -127,23 +125,35 @@ typedef struct {
is4_group_select_t group_selects[COUNTER_GROUPS_NUM];
} is4_config_counter_groups_t;
-void counter_groups_info(ib_portid_t * portid, int port)
+static int do_vendor(ib_portid_t *portid, struct ibmad_port *srcport,
+ uint8_t class, uint8_t method, uint16_t attr_id,
+ uint32_t attr_mod, void *data)
{
- char buf[1024];
ib_vendor_call_t call;
- is4_counter_group_info_t *cg_info;
- int i, num_cg;
memset(&call, 0, sizeof(call));
- call.mgmt_class = IB_MLX_VENDOR_CLASS;
- call.method = IB_MAD_METHOD_GET;
+ call.mgmt_class = class;
+ call.method = method;
call.timeout = ibd_timeout;
- call.attrid = IB_MLX_IS4_COUNTER_GROUP_INFO;
- call.mod = port;
+ call.attrid = attr_id;
+ call.mod = attr_mod;
+
+ if (!ib_vendor_call_via(data, portid, &call, srcport))
+ IBERROR("vendstat: method %u, attribute %u", method, attr_id);
+
+ return 0;
+}
+
+static void counter_groups_info(ib_portid_t * portid, int port)
+{
+ char buf[1024];
+ is4_counter_group_info_t *cg_info;
+ int i, num_cg;
/* Counter Group Info */
memset(&buf, 0, sizeof(buf));
- if (!ib_vendor_call_via(&buf, portid, &call, srcport))
+ if (do_vendor(portid, srcport, IB_MLX_VENDOR_CLASS, IB_MAD_METHOD_GET,
+ IB_MLX_IS4_COUNTER_GROUP_INFO, port, buf))
IBERROR("counter group info query");
cg_info = (is4_counter_group_info_t *) & buf;
@@ -166,20 +176,12 @@ void counter_groups_info(ib_portid_t * portid, int port)
static int cg0, cg1;
-void config_counter_groups(ib_portid_t * portid, int port)
+static void config_counter_groups(ib_portid_t * portid, int port)
{
char buf[1024];
- ib_vendor_call_t call;
is4_config_counter_groups_t *cg_config;
- memset(&call, 0, sizeof(call));
- call.mgmt_class = IB_MLX_VENDOR_CLASS;
- call.attrid = IB_MLX_IS4_CONFIG_COUNTER_GROUP;
- call.timeout = ibd_timeout;
- call.mod = port;
/* configure counter groups for groups 0 and 1 */
- call.method = IB_MAD_METHOD_SET;
-
memset(&buf, 0, sizeof(buf));
cg_config = (is4_config_counter_groups_t *) & buf;
@@ -188,14 +190,15 @@ void config_counter_groups(ib_portid_t * portid, int port)
cg_config->group_selects[0].group_select = (uint8_t) cg0;
cg_config->group_selects[1].group_select = (uint8_t) cg1;
- if (!ib_vendor_call_via(&buf, portid, &call, srcport))
+ if (do_vendor(portid, srcport, IB_MLX_VENDOR_CLASS, IB_MAD_METHOD_SET,
+ IB_MLX_IS4_CONFIG_COUNTER_GROUP, port, buf))
IBERROR("config counter group set");
/* get config counter groups */
memset(&buf, 0, sizeof(buf));
- call.method = IB_MAD_METHOD_GET;
- if (!ib_vendor_call_via(&buf, portid, &call, srcport))
+ if (do_vendor(portid, srcport, IB_MLX_VENDOR_CLASS, IB_MAD_METHOD_GET,
+ IB_MLX_IS4_CONFIG_COUNTER_GROUP, port, buf))
IBERROR("config counter group query");
}
@@ -234,10 +237,7 @@ int main(int argc, char **argv)
ib_portid_t portid = { 0 };
int port = 0;
char buf[1024];
- ib_vendor_call_t call;
is3_general_info_t *gi;
- is3_config_space_t *cs;
- int i;
const struct ibdiag_opt opts[] = {
{"N", 'N', 0, NULL, "show IS3 or IS4 general information"},
@@ -299,22 +299,16 @@ int main(int argc, char **argv)
/* Would need a list of these and it might not be complete */
/* so for right now, punt on this */
- memset(&call, 0, sizeof(call));
- call.mgmt_class = IB_MLX_VENDOR_CLASS;
- call.method = IB_MAD_METHOD_GET;
- call.timeout = ibd_timeout;
-
- memset(&buf, 0, sizeof(buf));
/* vendor ClassPortInfo is required attribute if class supported */
- call.attrid = CLASS_PORT_INFO;
- if (!ib_vendor_call_via(&buf, &portid, &call, srcport))
+ memset(&buf, 0, sizeof(buf));
+ if (do_vendor(&portid, srcport, IB_MLX_VENDOR_CLASS, IB_MAD_METHOD_GET,
+ CLASS_PORT_INFO, 0, buf))
IBERROR("classportinfo query");
memset(&buf, 0, sizeof(buf));
- call.attrid = IB_MLX_IS3_GENERAL_INFO;
- if (!ib_vendor_call_via(&buf, &portid, &call, srcport))
- IBERROR("vendstat");
gi = (is3_general_info_t *) & buf;
+ if (do_vendor(&portid, srcport, IB_MLX_VENDOR_CLASS, IB_MAD_METHOD_GET,
+ IB_MLX_IS3_GENERAL_INFO, 0, gi))
if (general_info) {
/* dump IS3 or IS4 general info here */
@@ -336,20 +330,22 @@ int main(int argc, char **argv)
}
if (xmit_wait) {
+ is3_config_space_t *cs;
+ unsigned i;
+
if (ntohs(gi->hw_info.device_id) != IS3_DEVICE_ID)
IBERROR("Unsupported device ID 0x%x",
ntohs(gi->hw_info.device_id));
memset(&buf, 0, sizeof(buf));
- call.attrid = IB_MLX_IS3_CONFIG_SPACE_ACCESS;
- /* Limit of 18 accesses per MAD ? */
- call.mod = 2 << 22 | 16 << 16; /* 16 records */
/* Set record addresses for each port */
cs = (is3_config_space_t *) & buf;
for (i = 0; i < 16; i++)
cs->record[i].address =
htonl(IB_MLX_IS3_PORT_XMIT_WAIT + ((i + 1) << 12));
- if (!ib_vendor_call_via(&buf, &portid, &call, srcport))
+ if (do_vendor(&portid, srcport, IB_MLX_VENDOR_CLASS,
+ IB_MAD_METHOD_GET, IB_MLX_IS3_CONFIG_SPACE_ACCESS,
+ 2 << 22 | 16 << 16, cs))
IBERROR("vendstat");
for (i = 0; i < 16; i++)
@@ -358,14 +354,14 @@ int main(int argc, char **argv)
/* Last 8 ports is another query */
memset(&buf, 0, sizeof(buf));
- call.attrid = IB_MLX_IS3_CONFIG_SPACE_ACCESS;
- call.mod = 2 << 22 | 8 << 16; /* 8 records */
/* Set record addresses for each port */
cs = (is3_config_space_t *) & buf;
for (i = 0; i < 8; i++)
cs->record[i].address =
htonl(IB_MLX_IS3_PORT_XMIT_WAIT + ((i + 17) << 12));
- if (!ib_vendor_call_via(&buf, &portid, &call, srcport))
+ if (do_vendor(&portid, srcport, IB_MLX_VENDOR_CLASS,
+ IB_MAD_METHOD_GET, IB_MLX_IS3_CONFIG_SPACE_ACCESS,
+ 2 << 22 | 8 << 16, cs))
IBERROR("vendstat");
for (i = 0; i < 8; i++)
--
1.7.0.4
--
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
^ permalink raw reply related
* [PATCH] infiniband-diags/libibnetdisc/ibnetdisc.c: Fix compile warns on 32 bit archs
From: Hal Rosenstock @ 2010-05-24 19:45 UTC (permalink / raw)
To: sashak-smomgflXvOZWk0Htik3J/w; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
src/ibnetdisc.c: In function `query_port_info':
src/ibnetdisc.c:216: warning: long unsigned int format, different type arg (arg 5)
src/ibnetdisc.c: In function `recv_node_info':
src/ibnetdisc.c:311: warning: long unsigned int format, different type arg (arg 5)
src/ibnetdisc.c:335: warning: long unsigned int format, different type arg (arg 6)
Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
infiniband-diags/libibnetdisc/src/ibnetdisc.c | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/infiniband-diags/libibnetdisc/src/ibnetdisc.c b/infiniband-diags/libibnetdisc/src/ibnetdisc.c
index 98801de..157b866 100644
--- a/infiniband-diags/libibnetdisc/src/ibnetdisc.c
+++ b/infiniband-diags/libibnetdisc/src/ibnetdisc.c
@@ -211,8 +211,8 @@ static int recv_port_info(smp_engine_t * engine, ibnd_smp_t * smp,
static int query_port_info(smp_engine_t * engine, ib_portid_t * portid,
ibnd_node_t * node, int portnum)
{
- IBND_DEBUG("Query Port Info; %s (%lx):%d\n", portid2str(portid),
- node->guid, portnum);
+ IBND_DEBUG("Query Port Info; %s (0x%" PRIx64 "):%d\n",
+ portid2str(portid), node->guid, portnum);
return issue_smp(engine, portid, IB_ATTR_PORT_INFO, portnum,
recv_port_info, node);
}
@@ -307,8 +307,9 @@ static int recv_node_info(smp_engine_t * engine, ibnd_smp_t * smp,
return -1;
node_is_new = 1;
}
- IBND_DEBUG("Found %s node GUID %lx (%s)\n", node_is_new ? "new" : "old",
- node->guid, portid2str(&smp->path));
+ IBND_DEBUG("Found %s node GUID 0x%" PRIx64 "(%s)\n",
+ node_is_new ? "new" : "old", node->guid,
+ portid2str(&smp->path));
port = node->ports[port_num];
if (!port) {
@@ -331,7 +332,8 @@ static int recv_node_info(smp_engine_t * engine, ibnd_smp_t * smp,
if (!rem_node->ports[rem_port_num]) {
IBND_ERROR("Internal Error; "
- "Node(%p) %lx Port %d no port created!?!?!?\n\n",
+ "Node(%p) 0x%" PRIx64
+ "Port %d no port created!?!?!?\n\n",
rem_node, rem_node->guid, rem_port_num);
return -1;
}
--
1.5.6.4
--
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
^ permalink raw reply related
* [PATCH] opensm/osm_sa_multipath_record.c: livelock in mpr_rcv_get_path_parms
From: Hal Rosenstock @ 2010-05-24 19:43 UTC (permalink / raw)
To: sashak-smomgflXvOZWk0Htik3J/w; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
Similar to commit 1010c9c5014d5a6af2db33e27ae7156f239e7254 for
opensm/osm_sa_path_record.c:pr_rcv_get_path_parms
Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
opensm/opensm/osm_sa_multipath_record.c | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/opensm/opensm/osm_sa_multipath_record.c b/opensm/opensm/osm_sa_multipath_record.c
index cb27e9d..18a0122 100644
--- a/opensm/opensm/osm_sa_multipath_record.c
+++ b/opensm/opensm/osm_sa_multipath_record.c
@@ -62,6 +62,7 @@
#include <opensm/osm_sa.h>
#define OSM_SA_MPR_MAX_NUM_PATH 127
+#define MAX_HOPS 64
typedef struct osm_mpr_item {
cl_list_item_t list_item;
@@ -295,7 +296,23 @@ static ib_api_status_t mpr_rcv_get_path_parms(IN osm_sa_t * sa,
goto Exit;
}
+ /* update number of hops traversed */
hops++;
+ if (hops > MAX_HOPS) {
+ OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 4520: "
+ "Path from GUID 0x%016" PRIx64 " (%s) to"
+ " lid %u GUID 0x%016" PRIx64 " (%s) needs"
+ " more than %d hops, max %d hops allowed\n",
+ cl_ntoh64(osm_physp_get_port_guid(p_src_physp)),
+ p_src_physp->p_node->print_desc, dest_lid_ho,
+ cl_ntoh64(osm_physp_get_port_guid
+ (p_dest_physp)),
+ p_dest_physp->p_node->print_desc, hops,
+ MAX_HOPS);
+ status = IB_NOT_FOUND;
+ goto Exit;
+ }
+
in_port_num = osm_physp_get_port_num(p_physp);
/*
--
1.5.6.4
--
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
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox