On Fri, Feb 5, 2010 at 12:22 AM, Sasha Khapyorsky <[email protected]> wrote: > > I'm not sure that this is a bug, but anyway. Now for MC group spanning > tree root switch calculation it uses max hops criteria differently - > accumulated hops for all MC members connected to the switch against > previous maximal one. > > This patch makes it functionally exactly as it was.
right. otherwise it is sort of average hops. > > Signed-off-by: Sasha Khapyorsky <[email protected]> > --- > opensm/opensm/osm_mcast_mgr.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/opensm/opensm/osm_mcast_mgr.c b/opensm/opensm/osm_mcast_mgr.c > index f33d6a6..322635d 100644 > --- a/opensm/opensm/osm_mcast_mgr.c > +++ b/opensm/opensm/osm_mcast_mgr.c > @@ -253,7 +253,8 @@ static float mcast_mgr_compute_max_hops(osm_sm_t * sm, > cl_qmap_t * m, > sw = cl_item_obj(i, sw, mgrp_item); > lid = cl_ntoh16(osm_node_get_base_lid(sw->p_node, 0)); > hops = osm_switch_get_least_hops(this_sw, lid); > - hops = (hops + 1) * sw->num_of_mcm + hops * sw->is_mc_member; > + if (!sw->is_mc_member) > + hops += 1; I think that this condition is may be avoided since if the switch is a member in the MC group then the packet still needs to get to the CPU that is running on it (enhanced port) and this is similar to additional hop in case of host (assuming that host cpu is much faster then switch cpu). Eli > if (hops > max_hops) > max_hops = hops; > } > -- > 1.6.6.1 > > -- > 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
