opensm/osm_state_mgr.c: Don't rely on PortInfo:PortState for base SP0
PATCH 1/2 opensm/osm_state_mgr.c: Don't rely on PortInfo:PortState for base SP0
For base SP0, PortState in SM PortInfo attribute is not used and base SP0 is always "active".
---
opensm/osm_state_mgr.c +5 -1
@@ -352,7 +352,11 @@ static boolean_t state_mgr_is_sm_port_down(IN osm_sm_t * sm)CL_ASSERT (p_physp); - state =osm_physp_get_port_state (p_physp); +if (p_port->p_node->sw && + !ib_switch_info_is_enhanced_port0 (&p_port->p_node->sw->switch_info)) + state =IB_LINK_ACTIVE ;/* base SP0 */ +else + state =osm_physp_get_port_state (p_physp);CL_PLOCK_RELEASE (sm->p_lock); Exit:
--
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
A message that is not in the archive (sent off-list or not yet received): 4DAC3CCC.4090101-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org
Hi Hal,
Quoted 3 lines · Hal Rosenstock
For base SP0, PortState in SM PortInfo attribute is not used and base SP0 is always "active".
How SM can be attached to base SP0?
Moreover, if during discovery we found that SM is attached to base SP0, don't we want to act like the port is down?
Quoted 21 lines
---
opensm/osm_state_mgr.c +5
-2@@ -352,7 +352,11 @@ static boolean_t state_mgr_is_sm_port_down(IN osm_sm_t * sm)CL_ASSERT (p_physp); - state =osm_physp_get_port_state (p_physp); +if (p_port->p_node->sw && + !ib_switch_info_is_enhanced_port0 (&p_port->p_node->sw->switch_info)) + state =IB_LINK_ACTIVE ;/* base SP0 */ +else + state =osm_physp_get_port_state (p_physp);CL_PLOCK_RELEASE (sm->p_lock); Exit: --
Quoted 3 lines
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
-- Alex
--
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
A message that is not in the archive (sent off-list or not yet received): 20110420141713.GD28761-iQai9MGU/dyyaiaB+Ve85laTQe2KTcn/@public.gmane.org
Hi Alex,
Quoted 8 lines · Alex Netes
Hi Hal,
Quoted 3 lines · Hal Rosenstock
For base SP0, PortState in SM PortInfo attribute is not used and base SP0 is always "active".
How SM can be attached to base SP0?
What precludes this ? AFAIK SM can run on any switch port 0 whether enhanced or base.
Quoted 2 lines
Moreover, if during discovery we found that SM is attached to base SP0, don't we want to act like the port is down?
For base SP0, PortState and PortPhysicalState are "not used" in the SM PortInfo attribute. That means they're "vendor" specific and they should not be relied upon to be valid.
The point of this patch is that base SP0 is always up regardless of what PortInfo for that port says.
If SM wasn't allowed to run on base SP0, it would be a different patch:
to prohibit such a port from being used at all as the SM port so the failure would be earlier in the code flow when the SM tries to bind to such a port.
-- Hal
Quoted 19 lines
Quoted 19 lines
---
opensm/osm_state_mgr.c +5
-1@@ -352,7 +352,11 @@ static boolean_t state_mgr_is_sm_port_down(IN osm_sm_t * sm)CL_ASSERT (p_physp); - state =osm_physp_get_port_state (p_physp); +if (p_port->p_node->sw && + !ib_switch_info_is_enhanced_port0 (&p_port->p_node->sw->switch_info)) + state =IB_LINK_ACTIVE ;/* base SP0 */ +else + state =osm_physp_get_port_state (p_physp);CL_PLOCK_RELEASE (sm->p_lock);
Quoted 5 lines
opensm/osm_state_mgr.c static boolean_t state_mgr_is_sm_port_down(IN osm_sm_t * sm)
Quoted 2 lines
opensm/osm_state_mgr.c +0
-1Exit: ---- Alex
--
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
A message that is not in the archive (sent off-list or not yet received): 4DAEF103.1000706-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org
Quoted 7 lines · Hal Rosenstock
Hi Alex,
Quoted 4 lines · Alex Netes
Hi Hal,
Quoted 1 line · Hal Rosenstock
Quoted 8 lines
Quoted 4 lines
Quoted 2 lines
For base SP0, PortState in SM PortInfo attribute is not used and base SP0 is always "active".
How SM can be attached to base SP0?
What precludes this ? AFAIK SM can run on any switch port 0 whether enhanced or base.
I'm probably missing something. Base Switch Port 0 - A Switch Port 0 which is not an Endport (IBTA p71).
If you look further, Endport defined as a Port which can be a destination of LID-routed communication within the same Subnet as the sender.
How can SM be attached to a port which isn't an Endport?
-- Alex
--
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
A message that is not in the archive (sent off-list or not yet received): 20110421122243.GA2137-iQai9MGU/dyyaiaB+Ve85laTQe2KTcn/@public.gmane.org
Quoted 11 lines · Alex Netes
Quoted 10 lines · Hal Rosenstock
Hi Alex,
Quoted 7 lines · Alex Netes
Hi Hal,
Quoted 3 lines · Hal Rosenstock
For base SP0, PortState in SM PortInfo attribute is not used and base SP0 is always "active".
Quoted 8 lines
Quoted 5 lines
Quoted 1 line
How SM can be attached to base SP0?
What precludes this ? AFAIK SM can run on any switch port 0 whether enhanced or base.
I'm probably missing something. Base Switch Port 0 - A Switch Port 0 which is not an Endport (IBTA p71).
The glossary is only informative (and not compliance) and has a number of such issues.
You can see that the Endport definition on p.73 contradicts this:
"All Channel Adapter ports on the subnet are
endports of that subnet, as is Port 0 of each Switch in the subnet. Switch ports other than Port 0 may not be endports."
A spec comment (RefID 4352) was entered quite some time ago on this to change this to something like:
A <Switch Port 0> with a set of basic capabilities (defined in this specification). That set is less than the capabilities of an <Enhanced Switch Port 0>, and also less than the minimum set of capabilities required of a <Target Channel Adapter>.
Quoted 2 lines
If you look further, Endport defined as a Port which can be a destination of LID-routed communication within the same Subnet as the sender.
Actually this is imprecise as well as the phrase "within the same Subnet as the sender" should be eliminated.
Quoted 1 line
How can SM be attached to a port which isn't an Endport?
Base SP0 does have a LID (look at PortInfo:LID Used By column is X'd).
-- Hal
Quoted 6 lines
-- Alex
--
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
--
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
Hi Hal,
Quoted 6 lines · Hal Rosenstock
For base SP0, PortState in SM PortInfo attribute is not used and base SP0 is always "active".
---
Applied. Thanks.
--
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