Following previous patch 'opensm: improve multicast re-routing requests processing' remove multicast change id (last_change_id, last_tree_id), we don't need to track it anymore i- all requests are processed only once per mlid.
Signed-off-by: Sasha Khapyorsky <sas...@voltaire.com> --- opensm/include/opensm/osm_multicast.h | 10 ---------- opensm/opensm/osm_mcast_mgr.c | 21 ++------------------- opensm/opensm/osm_multicast.c | 7 ------- 3 files changed, 2 insertions(+), 36 deletions(-) diff --git a/opensm/include/opensm/osm_multicast.h b/opensm/include/opensm/osm_multicast.h index eda447e..ce3d310 100644 --- a/opensm/include/opensm/osm_multicast.h +++ b/opensm/include/opensm/osm_multicast.h @@ -128,8 +128,6 @@ typedef struct osm_mgrp { ib_member_rec_t mcmember_rec; boolean_t well_known; boolean_t to_be_deleted; - uint32_t last_change_id; - uint32_t last_tree_id; unsigned full_members; } osm_mgrp_t; /* @@ -163,14 +161,6 @@ typedef struct osm_mgrp { * track the fact the group is about to be deleted so we can * track the fact a new join is actually a create request. * -* last_change_id -* a counter for the number of changes applied to the group. -* This counter shuold be incremented on any modification -* to the group: joining or leaving of ports. -* -* last_tree_id -* the last change id used for building the current tree. -* * SEE ALSO *********/ diff --git a/opensm/opensm/osm_mcast_mgr.c b/opensm/opensm/osm_mcast_mgr.c index dd504ef..0553277 100644 --- a/opensm/opensm/osm_mcast_mgr.c +++ b/opensm/opensm/osm_mcast_mgr.c @@ -1039,12 +1039,10 @@ static ib_api_status_t mcast_mgr_process_mgrp(osm_sm_t * sm, if (p_mgrp->full_members) { status = mcast_mgr_build_spanning_tree(sm, p_mgrp); - if (status != IB_SUCCESS) { + if (status != IB_SUCCESS) OSM_LOG(sm->p_log, OSM_LOG_ERROR, "ERR 0A17: " "Unable to create spanning tree (%s)\n", ib_get_err_str(status)); - goto Exit; - } } else if (p_mgrp->to_be_deleted) { OSM_LOG(sm->p_log, OSM_LOG_DEBUG, "Destroying mgrp with lid:0x%x\n", @@ -1054,12 +1052,8 @@ static ib_api_status_t mcast_mgr_process_mgrp(osm_sm_t * sm, cl_fmap_remove_item(&sm->p_subn->mgrp_mgid_tbl, &p_mgrp->map_item); osm_mgrp_delete(p_mgrp); - goto Exit; } - p_mgrp->last_tree_id = p_mgrp->last_change_id; - -Exit: OSM_LOG_EXIT(sm->p_log); return status; } @@ -1201,19 +1195,8 @@ int osm_mcast_mgr_process_mgroups(osm_sm_t * sm) if (!p_mgrp) continue; - /* if there was no change from the last time - * we processed the group we can skip doing anything - */ - if (p_mgrp->last_change_id == p_mgrp->last_tree_id) { - OSM_LOG(sm->p_log, OSM_LOG_DEBUG, - "Skip processing mgrp with lid:0x%X change id:%u\n", - cl_ntoh16(mlid), p_mgrp->last_change_id); - continue; - } - OSM_LOG(sm->p_log, OSM_LOG_DEBUG, - "Processing mgrp with lid:0x%X change id:%u\n", - cl_ntoh16(mlid), p_mgrp->last_change_id); + "Processing mgrp with lid:0x%x\n", cl_ntoh16(mlid)); mcast_mgr_process_mgrp(sm, p_mgrp); } diff --git a/opensm/opensm/osm_multicast.c b/opensm/opensm/osm_multicast.c index 4b4a6b0..1326161 100644 --- a/opensm/opensm/osm_multicast.c +++ b/opensm/opensm/osm_multicast.c @@ -86,8 +86,6 @@ osm_mgrp_t *osm_mgrp_new(IN const ib_net16_t mlid) memset(p_mgrp, 0, sizeof(*p_mgrp)); cl_qmap_init(&p_mgrp->mcm_port_tbl); p_mgrp->mlid = mlid; - p_mgrp->last_change_id = 0; - p_mgrp->last_tree_id = 0; p_mgrp->to_be_deleted = FALSE; return p_mgrp; @@ -167,9 +165,6 @@ osm_mcm_port_t *osm_mgrp_add_port(IN osm_subn_t * subn, osm_log_t * log, p_mcm_port->scope_state = ib_member_set_scope_state(prev_scope, prev_join_state | join_state); - } else { - /* track the fact we modified the group ports */ - p_mgrp->last_change_id++; } if ((join_state & IB_JOIN_STATE_FULL) && @@ -211,8 +206,6 @@ int osm_mgrp_remove_port(osm_subn_t * subn, osm_log_t * log, osm_mgrp_t * mgrp, OSM_LOG(log, OSM_LOG_DEBUG, "removing port 0x%" PRIx64 "\n", cl_ntoh64(mcm->port_gid.unicast.interface_id)); osm_mcm_port_delete(mcm); - /* track the fact we modified the group */ - mgrp->last_change_id++; ret = 1; } -- 1.6.4.2 _______________________________________________ general mailing list general@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general