[ofa-general] Re: [PATCH] opensm: PortInfo set decision flow simplification
Hal Rosenstock
hrosenstock at xsigo.com
Mon Nov 12 11:24:22 PST 2007
Hi Sasha,
On Sat, 2007-11-10 at 16:51 +0200, Sasha Khapyorsky wrote:
> This simplifies (but doesn't change) flow for PortInfo set decision in
> lid and link mgrs - mostly to make the code more readable.
>
> Signed-off-by: Sasha Khapyorsky <sashak at voltaire.com>
> ---
> opensm/opensm/osm_lid_mgr.c | 9 +++++----
> opensm/opensm/osm_link_mgr.c | 15 ++++++---------
> 2 files changed, 11 insertions(+), 13 deletions(-)
>
> diff --git a/opensm/opensm/osm_lid_mgr.c b/opensm/opensm/osm_lid_mgr.c
> index 9527185..9da6fcf 100644
> --- a/opensm/opensm/osm_lid_mgr.c
> +++ b/opensm/opensm/osm_lid_mgr.c
> @@ -1184,9 +1184,11 @@ __osm_lid_mgr_set_physp_pi(IN osm_lid_mgr_t * const p_mgr,
> 3. got_set_resp on the physical port is FALSE. This means we haven't seen
> this port before and we need to send Set of PortInfo to it.
> */
> - if (send_set || p_mgr->p_subn->first_time_master_sweep == TRUE ||
> - p_physp->got_set_resp == FALSE) {
> + if (p_mgr->p_subn->first_time_master_sweep == TRUE ||
> + p_physp->got_set_resp == FALSE)
> + send_set = TRUE;
>
> + if (send_set) {
> p_mgr->send_set_reqs = TRUE;
> status = osm_req_set(p_mgr->p_req,
> osm_physp_get_dr_path_ptr(p_physp),
> @@ -1199,8 +1201,7 @@ __osm_lid_mgr_set_physp_pi(IN osm_lid_mgr_t * const p_mgr,
>
> Exit:
> OSM_LOG_EXIT(p_mgr->p_log);
> - return (send_set || p_mgr->p_subn->first_time_master_sweep == TRUE ||
> - p_physp->got_set_resp == FALSE);
> + return send_set;
> }
>
> /**********************************************************************
> diff --git a/opensm/opensm/osm_link_mgr.c b/opensm/opensm/osm_link_mgr.c
> index 19d03d9..b151c76 100644
> --- a/opensm/opensm/osm_link_mgr.c
> +++ b/opensm/opensm/osm_link_mgr.c
> @@ -389,15 +389,12 @@ __osm_link_mgr_set_physp_pi(IN osm_link_mgr_t * const p_mgr,
> b. got_set_resp on the physical port is FALSE. This means we haven't
> seen this port before - need to send PortInfoSet to it.
> */
> - if (send_set ||
> - (osm_node_get_type(p_node) != IB_NODE_TYPE_SWITCH
> - && p_physp->got_set_resp == FALSE)
> - || (osm_node_get_type(p_node) == IB_NODE_TYPE_SWITCH
> - && port_num == 0 && p_physp->got_set_resp == FALSE)
> - || (osm_node_get_type(p_node) == IB_NODE_TYPE_SWITCH
> - && port_num != 0
> - && (p_mgr->p_subn->first_time_master_sweep == TRUE
> - || p_physp->got_set_resp == FALSE))) {
> + if (p_physp->got_set_resp == FALSE
> + || (osm_node_get_type(p_node) == IB_NODE_TYPE_SWITCH && port_num
> + && p_mgr->p_subn->first_time_master_sweep == TRUE))
This doesn't look logically the same to me. I think it sets send_set in
some cases where it wasn't before.
-- Hal
> + send_set = TRUE;
> +
> + if (send_set) {
> p_mgr->send_set_reqs = TRUE;
> status = osm_req_set(p_mgr->p_req,
> osm_physp_get_dr_path_ptr(p_physp),
More information about the general
mailing list