Re: [PATCH] opensm: perfmgr, only set orig_lid when we have a valid port. Otherwise leave it as 0

2011-04-18 Thread Hal Rosenstock
On 4/17/2011 9:26 PM, Weiny, Ira K. wrote:
 On Apr 17, 2011, at 8:21 AM, Hal Rosenstock wrote:
 
 On 4/15/2011 6:17 PM, Ira Weiny wrote:

 Subject: [PATCH] opensm: perfmgr, only set orig_lid when we have a valid 
 port.  Otherwise leave it as 0


 Signed-off-by: Ira Weiny wei...@llnl.gov
 ---
 opensm/osm_perfmgr.c |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

 diff --git a/opensm/osm_perfmgr.c b/opensm/osm_perfmgr.c
 index 6a1fa63..3e1575a 100644
 --- a/opensm/osm_perfmgr.c
 +++ b/opensm/osm_perfmgr.c
 @@ -454,7 +454,9 @@ static void collect_guids(cl_map_item_t * p_map_item, 
 void *context)
   ib_switch_info_is_enhanced_port0(node-sw-

 switch_info));
 for (port = mon_node-esp0 ? 0 : 1; port  num_ports; port++) {
 -   mon_node-port[port].orig_lid = get_base_lid(node, 
 port);
 +   mon_node-port[port].orig_lid = 0;
 +   if (osm_physp_is_valid(node-physp_table[port]))
 +   mon_node-port[port].orig_lid = 
 get_base_lid(node, port);
 mon_node-port[port].valid = TRUE;
 }


 There are several other calls to get_base_lid. Is it also an issue there
 too or is port always valid there ? If it's not always valid for those
 cases, why not just move this check into get_base_lid ?
 
 I believe this is a special case because we are looping through the ports of 
 a CA node and not all of it's ports are valid on this fabric.  Most of the 
 other places where get_base_lid is called I believe the port is known to be 
 good, therefore there is an assertion in there just to protect us.
 
 I think the better way to fix this would probably be to change the perfmgr 
 to track ports rather than nodes.[*]

Why would tracking ports be better than tracking nodes ? Just to
eliminate this issue ?

 Unfortunately this will take a significant amount of coding effort.  I think 
 the best thing to do is just check if the physical port is valid as I did 
 above.
 
 As to Alex's comment I think the port should be marked invalid as well.  (I 
 should have CC'ed the list on my response to him.)  I will resend the patch 
 with that change.
 
 Ira
 
 [*] At the time I coded the perfmgr it seemed to make more sense to track 
 nodes rather than ports.  
 In hindsight this might have been a mistake but for this small place I don't 
 see a reason to re-architect it all yet.

I'm not following what you're thinking here other than this small issue.
Is there something more behind this ?

-- Hal

--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] opensm/osm_state_mgr.c: Don't rely on PortInfo:PortState for base SP0

2011-04-18 Thread Hal Rosenstock

For base SP0, PortState in SM PortInfo attribute is not used and base SP0
is always active. 

Signed-off-by: Hal Rosenstock h...@mellanox.com
---
diff --git a/opensm/osm_state_mgr.c b/opensm/osm_state_mgr.c
index 2e1ef94..dd308f2 100644
--- a/opensm/osm_state_mgr.c
+++ b/opensm/osm_state_mgr.c
@@ -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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/2] opensm/osm_perfmgr.c: Don't rely on PortInfo:PortState for base SP0

2011-04-18 Thread Hal Rosenstock

For base SP0, PortState in SM PortInfo attribute is not used and base SP0
is always active.

Signed-off-by: Hal Rosenstock h...@mellanox.com
---

diff --git a/opensm/osm_perfmgr.c b/opensm/osm_perfmgr.c
index 6a1fa63..86efde6 100644
--- a/opensm/osm_perfmgr.c
+++ b/opensm/osm_perfmgr.c
@@ -684,6 +684,10 @@ static unsigned is_sm_port_down(osm_sm_t * sm)
}
CL_PLOCK_RELEASE(sm-p_lock);
 
+   if (p_port-p_node-sw 
+   !ib_switch_info_is_enhanced_port0(p_port-p_node-sw-switch_info))
+   return 0;   /* base SP0 */
+
return osm_physp_get_port_state(p_port-p_physp) == IB_LINK_DOWN;
 }
 
--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Issues with patchwork?

2011-04-18 Thread Roland Dreier
On Sun, Apr 17, 2011 at 3:47 AM, Weiny, Ira K. wei...@llnl.gov wrote:
 I just checked patchwork and it looks like those patches which were submitted 
 since ~2/25/2011 are no longer there?  This includes 3 patches which were in 
 my todo list yesterday.

 Does anyone know what the issue is?

Does look like we lost some data.  J.H. -- did the patchwork database
get messed up possibly?
--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] opensm: perfmgr, only set orig_lid when we have a valid port. Otherwise leave it as 0

2011-04-18 Thread Ira Weiny
On Mon, 18 Apr 2011 05:42:56 -0700
Hal Rosenstock h...@dev.mellanox.co.il wrote:

 On 4/17/2011 9:26 PM, Weiny, Ira K. wrote:
  On Apr 17, 2011, at 8:21 AM, Hal Rosenstock wrote:
  
  On 4/15/2011 6:17 PM, Ira Weiny wrote:
 

[snip]

 
  There are several other calls to get_base_lid. Is it also an issue there
  too or is port always valid there ? If it's not always valid for those
  cases, why not just move this check into get_base_lid ?
  
  I believe this is a special case because we are looping through the ports 
  of a CA node and not all of it's ports are valid on this fabric.  Most of 
  the other places where get_base_lid is called I believe the port is known 
  to be good, therefore there is an assertion in there just to protect us.
  
  I think the better way to fix this would probably be to change the 
  perfmgr to track ports rather than nodes.[*]
 
 Why would tracking ports be better than tracking nodes ? Just to
 eliminate this issue ?
 
  Unfortunately this will take a significant amount of coding effort.  I 
  think the best thing to do is just check if the physical port is valid as I 
  did above.
  
  As to Alex's comment I think the port should be marked invalid as well.  (I 
  should have CC'ed the list on my response to him.)  I will resend the patch 
  with that change.
  
  Ira
  
  [*] At the time I coded the perfmgr it seemed to make more sense to track 
  nodes rather than ports.  
  In hindsight this might have been a mistake but for this small place I 
  don't see a reason to re-architect it all yet.
 
 I'm not following what you're thinking here other than this small issue.
 Is there something more behind this ?

I agree that it would not be worth the effort to fix this minor issue.  My 
thoughts were: we are tracking values which are provided by ports not nodes.  
(They are PortCounters after all.)  So in some ways it makes sense to keep 
track of all the ports in the system.

However, I did think about it more after my email and tracking ports may have 
other disadvantages.  One example I could think of was that the perfmgr keeps 
it's own list of monitored nodes.  This list would be much larger if we were 
tracking ports.  So finding the monitored port would be slower when 
processing response mads.  Would that be a big deal?  Perhaps not.  I would 
have to do some performance tests.

In the end I just wanted to acknowledge that there might be another way.

:-D

Ira

 
 -- Hal
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-rdma in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html


-- 
Ira Weiny
Math Programmer/Computer Scientist
Lawrence Livermore National Lab
925-423-8008
wei...@llnl.gov
--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html