public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] opensm/osm_lid_mgr.c: Allow switch lids to be non LMC aligned
@ 2010-06-29 13:49 Eli Dorfman (Voltaire)
       [not found] ` <4C29F9E5.6030905-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Dorfman (Voltaire) @ 2010-06-29 13:49 UTC (permalink / raw)
  To: Sasha Khapyorsky; +Cc: linux-rdma, Vladimir Koushnir


Fixes a bug of failover between SM's that are running on a switch.
Both have lids below LMC start lid (equals to 2^LMC - 1)
In case of failover the LID range between 1 and start lid was considered not free
and their (switch's) lids were changed.

Signed-off-by: Eli Dorfman <elid-smomgflXvOZWk0Htik3J/w@public.gmane.org>
---
 opensm/opensm/osm_lid_mgr.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/opensm/opensm/osm_lid_mgr.c b/opensm/opensm/osm_lid_mgr.c
index 97b1de6..5d0247a 100644
--- a/opensm/opensm/osm_lid_mgr.c
+++ b/opensm/opensm/osm_lid_mgr.c
@@ -563,10 +563,6 @@ static boolean_t lid_mgr_is_range_not_persistent(IN osm_lid_mgr_t * p_mgr,
 						 IN uint16_t num_lids)
 {
 	uint16_t i;
-	uint8_t start_lid = (uint8_t) (1 << p_mgr->p_subn->opt.lmc);
-
-	if (lid < start_lid)
-		return FALSE;
 
 	for (i = lid; i < lid + num_lids; i++)
 		if (p_mgr->used_lids[i])
-- 
1.5.3.6

--
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	[flat|nested] 5+ messages in thread

* Re: [PATCH] opensm/osm_lid_mgr.c: Allow switch lids to be non LMC aligned
       [not found] ` <4C29F9E5.6030905-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2010-06-30 13:01   ` Hal Rosenstock
       [not found]     ` <AANLkTinrGhtz0ZKCnvW4d4GmN18QQnEI8ewLZ-vc1PVD-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2010-07-05 18:04   ` Sasha Khapyorsky
  1 sibling, 1 reply; 5+ messages in thread
From: Hal Rosenstock @ 2010-06-30 13:01 UTC (permalink / raw)
  To: Eli Dorfman (Voltaire); +Cc: Sasha Khapyorsky, linux-rdma, Vladimir Koushnir

On Tue, Jun 29, 2010 at 9:49 AM, Eli Dorfman (Voltaire)
<dorfman.eli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> Fixes a bug of failover between SM's that are running on a switch.
> Both have lids below LMC start lid (equals to 2^LMC - 1)
> In case of failover the LID range between 1 and start lid was considered not free
> and their (switch's) lids were changed.

Was the problem case for this when LMC > 0 but num_lids is 1 ?

> Signed-off-by: Eli Dorfman <elid-smomgflXvOZWk0Htik3J/w@public.gmane.org>
> ---
>  opensm/opensm/osm_lid_mgr.c |    4 ----
>  1 files changed, 0 insertions(+), 4 deletions(-)
>
> diff --git a/opensm/opensm/osm_lid_mgr.c b/opensm/opensm/osm_lid_mgr.c
> index 97b1de6..5d0247a 100644
> --- a/opensm/opensm/osm_lid_mgr.c
> +++ b/opensm/opensm/osm_lid_mgr.c
> @@ -563,10 +563,6 @@ static boolean_t lid_mgr_is_range_not_persistent(IN osm_lid_mgr_t * p_mgr,
>                                                 IN uint16_t num_lids)
>  {
>        uint16_t i;
> -       uint8_t start_lid = (uint8_t) (1 << p_mgr->p_subn->opt.lmc);
> -
> -       if (lid < start_lid)
> -               return FALSE;

I think eliminating this test can cause other breakage.

Shouldn't it be the following:

if (num_lids > 1 && lid < start_lid)
    return FALSE;

-- Hal

>        for (i = lid; i < lid + num_lids; i++)
>                if (p_mgr->used_lids[i])
> --
> 1.5.3.6
>
> --
> 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	[flat|nested] 5+ messages in thread

* Re: [PATCH] opensm/osm_lid_mgr.c: Allow switch lids to be non LMC aligned
       [not found]     ` <AANLkTinrGhtz0ZKCnvW4d4GmN18QQnEI8ewLZ-vc1PVD-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2010-06-30 14:44       ` Eli Dorfman (Voltaire)
       [not found]         ` <4C2B5860.8020306-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Dorfman (Voltaire) @ 2010-06-30 14:44 UTC (permalink / raw)
  To: Hal Rosenstock; +Cc: Sasha Khapyorsky, linux-rdma, Vladimir Koushnir

Hal Rosenstock wrote:
> On Tue, Jun 29, 2010 at 9:49 AM, Eli Dorfman (Voltaire)
> <dorfman.eli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>> Fixes a bug of failover between SM's that are running on a switch.
>> Both have lids below LMC start lid (equals to 2^LMC - 1)
>> In case of failover the LID range between 1 and start lid was considered not free
>> and their (switch's) lids were changed.
> 
> Was the problem case for this when LMC > 0 but num_lids is 1 ?

yes, it was for SM running on a switch.

> 
>> Signed-off-by: Eli Dorfman <elid-smomgflXvOZWk0Htik3J/w@public.gmane.org>
>> ---
>>  opensm/opensm/osm_lid_mgr.c |    4 ----
>>  1 files changed, 0 insertions(+), 4 deletions(-)
>>
>> diff --git a/opensm/opensm/osm_lid_mgr.c b/opensm/opensm/osm_lid_mgr.c
>> index 97b1de6..5d0247a 100644
>> --- a/opensm/opensm/osm_lid_mgr.c
>> +++ b/opensm/opensm/osm_lid_mgr.c
>> @@ -563,10 +563,6 @@ static boolean_t lid_mgr_is_range_not_persistent(IN osm_lid_mgr_t * p_mgr,
>>                                                 IN uint16_t num_lids)
>>  {
>>        uint16_t i;
>> -       uint8_t start_lid = (uint8_t) (1 << p_mgr->p_subn->opt.lmc);
>> -
>> -       if (lid < start_lid)
>> -               return FALSE;
> 
> I think eliminating this test can cause other breakage.
> 
> Shouldn't it be the following:
> 
> if (num_lids > 1 && lid < start_lid)
>     return FALSE;

This could be ok, but even without this test it should work since this function is called only 
if ((min_lid & lmc_mask) == min_lid)

So this would be false for any lid below start_lid.

right?


Eli
> 
> -- Hal
> 
>>        for (i = lid; i < lid + num_lids; i++)
>>                if (p_mgr->used_lids[i])
>> --
>> 1.5.3.6
>>
>> --
>> 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	[flat|nested] 5+ messages in thread

* Re: [PATCH] opensm/osm_lid_mgr.c: Allow switch lids to be non LMC aligned
       [not found]         ` <4C2B5860.8020306-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2010-06-30 15:23           ` Hal Rosenstock
  0 siblings, 0 replies; 5+ messages in thread
From: Hal Rosenstock @ 2010-06-30 15:23 UTC (permalink / raw)
  To: Eli Dorfman (Voltaire); +Cc: Sasha Khapyorsky, linux-rdma, Vladimir Koushnir

On 6/30/10, Eli Dorfman (Voltaire) <dorfman.eli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> Hal Rosenstock wrote:
>> On Tue, Jun 29, 2010 at 9:49 AM, Eli Dorfman (Voltaire)
>> <dorfman.eli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>>> Fixes a bug of failover between SM's that are running on a switch.
>>> Both have lids below LMC start lid (equals to 2^LMC - 1)
>>> In case of failover the LID range between 1 and start lid was considered
>>> not free
>>> and their (switch's) lids were changed.
>>
>> Was the problem case for this when LMC > 0 but num_lids is 1 ?
>
> yes, it was for SM running on a switch.

There are two cases for SM running on a switch. There is also the case
where num_lids > 1 which should work without this change.

>
>>
>>> Signed-off-by: Eli Dorfman <elid-smomgflXvOZWk0Htik3J/w@public.gmane.org>
>>> ---
>>>  opensm/opensm/osm_lid_mgr.c |    4 ----
>>>  1 files changed, 0 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/opensm/opensm/osm_lid_mgr.c b/opensm/opensm/osm_lid_mgr.c
>>> index 97b1de6..5d0247a 100644
>>> --- a/opensm/opensm/osm_lid_mgr.c
>>> +++ b/opensm/opensm/osm_lid_mgr.c
>>> @@ -563,10 +563,6 @@ static boolean_t lid_mgr_is_range_not_persistent(IN
>>> osm_lid_mgr_t * p_mgr,
>>>                                                 IN uint16_t num_lids)
>>>  {
>>>        uint16_t i;
>>> -       uint8_t start_lid = (uint8_t) (1 << p_mgr->p_subn->opt.lmc);
>>> -
>>> -       if (lid < start_lid)
>>> -               return FALSE;
>>
>> I think eliminating this test can cause other breakage.
>>
>> Shouldn't it be the following:
>>
>> if (num_lids > 1 && lid < start_lid)
>>     return FALSE;
>
> This could be ok, but even without this test it should work since this
> function is called only
> if ((min_lid & lmc_mask) == min_lid)
>
> So this would be false for any lid below start_lid.
>
> right?

Right (so lid_mgr_is_range_not_persistent wouldn't be called for the
case that I was concerned about).

-- Hal

>
>
> Eli
>>
>> -- Hal
>>
>>>        for (i = lid; i < lid + num_lids; i++)
>>>                if (p_mgr->used_lids[i])
>>> --
>>> 1.5.3.6
>>>
>>> --
>>> 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	[flat|nested] 5+ messages in thread

* Re: [PATCH] opensm/osm_lid_mgr.c: Allow switch lids to be non LMC aligned
       [not found] ` <4C29F9E5.6030905-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  2010-06-30 13:01   ` Hal Rosenstock
@ 2010-07-05 18:04   ` Sasha Khapyorsky
  1 sibling, 0 replies; 5+ messages in thread
From: Sasha Khapyorsky @ 2010-07-05 18:04 UTC (permalink / raw)
  To: Eli Dorfman (Voltaire); +Cc: linux-rdma, Vladimir Koushnir

On 16:49 Tue 29 Jun     , Eli Dorfman (Voltaire) wrote:
> 
> Fixes a bug of failover between SM's that are running on a switch.
> Both have lids below LMC start lid (equals to 2^LMC - 1)
> In case of failover the LID range between 1 and start lid was considered not free
> and their (switch's) lids were changed.
> 
> Signed-off-by: Eli Dorfman <elid-smomgflXvOZWk0Htik3J/w@public.gmane.org>

Applied. Thanks.

Sasha
--
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	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-07-05 18:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-29 13:49 [PATCH] opensm/osm_lid_mgr.c: Allow switch lids to be non LMC aligned Eli Dorfman (Voltaire)
     [not found] ` <4C29F9E5.6030905-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-06-30 13:01   ` Hal Rosenstock
     [not found]     ` <AANLkTinrGhtz0ZKCnvW4d4GmN18QQnEI8ewLZ-vc1PVD-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-30 14:44       ` Eli Dorfman (Voltaire)
     [not found]         ` <4C2B5860.8020306-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2010-06-30 15:23           ` Hal Rosenstock
2010-07-05 18:04   ` Sasha Khapyorsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox