* [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup
@ 2010-01-25 20:22 Hal Rosenstock
[not found] ` <20100125202247.GA9197-Wuw85uim5zDR7s880joybQ@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Hal Rosenstock @ 2010-01-25 20:22 UTC (permalink / raw)
To: sashak-smomgflXvOZWk0Htik3J/w; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
when using optimized programming and it's supported by the switch
Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
Changes since v1:
Add in update of vlarb tables for port 0 when optimized but no SL to VL
tables needed to be configured on that port
diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c
index f814ea8..218e128 100644
--- a/opensm/opensm/osm_qos.c
+++ b/opensm/opensm/osm_qos.c
@@ -243,13 +243,15 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node,
}
static int qos_endport_setup(osm_sm_t * sm, osm_physp_t * p,
- const struct qos_config *qcfg)
+ const struct qos_config *qcfg, int vlarb_only)
{
unsigned force_update = p->need_update || sm->p_subn->need_update;
p->vl_high_limit = qcfg->vl_high_limit;
if (vlarb_update(sm, p, 0, force_update, qcfg))
return -1;
+ if (vlarb_only)
+ return 0;
if (!(p->port_info.capability_mask & IB_PORT_CAP_HAS_SL_MAP))
return 0;
@@ -269,6 +271,7 @@ int osm_qos_setup(osm_opensm_t * p_osm)
osm_port_t *p_port;
osm_node_t *p_node;
int ret = 0;
+ int vlarb_only;
if (!p_osm->subn.opt.qos)
return 0;
@@ -292,6 +295,7 @@ int osm_qos_setup(osm_opensm_t * p_osm)
p_tbl = &p_osm->subn.port_guid_tbl;
p_next = cl_qmap_head(p_tbl);
while (p_next != cl_qmap_end(p_tbl)) {
+ vlarb_only = 0;
p_port = (osm_port_t *) p_next;
p_next = cl_qmap_next(p_next);
@@ -305,13 +309,20 @@ int osm_qos_setup(osm_opensm_t * p_osm)
(&p_node->sw->switch_info))
continue;
+ if (ib_switch_info_get_opt_sl2vlmapping(&p_node->sw->switch_info) &&
+ p_osm->sm.p_subn->opt.use_optimized_slvl &&
+ !memcmp(&swe_config.sl2vl, &sw0_config.sl2vl,
+ sizeof(swe_config.sl2vl)))
+ vlarb_only = 1;
+
cfg = &sw0_config;
} else if (osm_node_get_type(p_node) == IB_NODE_TYPE_ROUTER)
cfg = &rtr_config;
else
cfg = &ca_config;
- if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg))
+ if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg,
+ vlarb_only))
ret = -1;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 5+ messages in thread[parent not found: <20100125202247.GA9197-Wuw85uim5zDR7s880joybQ@public.gmane.org>]
* Re: [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup [not found] ` <20100125202247.GA9197-Wuw85uim5zDR7s880joybQ@public.gmane.org> @ 2010-01-26 13:26 ` Sasha Khapyorsky 2010-01-26 13:30 ` Hal Rosenstock 0 siblings, 1 reply; 5+ messages in thread From: Sasha Khapyorsky @ 2010-01-26 13:26 UTC (permalink / raw) To: Hal Rosenstock; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA On 15:22 Mon 25 Jan , Hal Rosenstock wrote: > > when using optimized programming and it's supported by the switch > > Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > --- > Changes since v1: > Add in update of vlarb tables for port 0 when optimized but no SL to VL > tables needed to be configured on that port > > diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c > index f814ea8..218e128 100644 > --- a/opensm/opensm/osm_qos.c > +++ b/opensm/opensm/osm_qos.c > @@ -243,13 +243,15 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node, > } > > static int qos_endport_setup(osm_sm_t * sm, osm_physp_t * p, > - const struct qos_config *qcfg) > + const struct qos_config *qcfg, int vlarb_only) > { > unsigned force_update = p->need_update || sm->p_subn->need_update; > > p->vl_high_limit = qcfg->vl_high_limit; > if (vlarb_update(sm, p, 0, force_update, qcfg)) > return -1; > + if (vlarb_only) > + return 0; > > if (!(p->port_info.capability_mask & IB_PORT_CAP_HAS_SL_MAP)) > return 0; > @@ -269,6 +271,7 @@ int osm_qos_setup(osm_opensm_t * p_osm) > osm_port_t *p_port; > osm_node_t *p_node; > int ret = 0; > + int vlarb_only; > > if (!p_osm->subn.opt.qos) > return 0; > @@ -292,6 +295,7 @@ int osm_qos_setup(osm_opensm_t * p_osm) > p_tbl = &p_osm->subn.port_guid_tbl; > p_next = cl_qmap_head(p_tbl); > while (p_next != cl_qmap_end(p_tbl)) { > + vlarb_only = 0; > p_port = (osm_port_t *) p_next; > p_next = cl_qmap_next(p_next); > > @@ -305,13 +309,20 @@ int osm_qos_setup(osm_opensm_t * p_osm) > (&p_node->sw->switch_info)) > continue; > > + if (ib_switch_info_get_opt_sl2vlmapping(&p_node->sw->switch_info) && > + p_osm->sm.p_subn->opt.use_optimized_slvl && > + !memcmp(&swe_config.sl2vl, &sw0_config.sl2vl, > + sizeof(swe_config.sl2vl))) > + vlarb_only = 1; > + qos_extports_setup() is running port setup loop (for both VLArb *and* SL2VL) as: for (i = 1; i < num_ports; i++) { ... } , starting from port '1'. So you case will just effectively skip any SL2VL setup for port 0 (it was commented for V1 too). Sasha > cfg = &sw0_config; > } else if (osm_node_get_type(p_node) == IB_NODE_TYPE_ROUTER) > cfg = &rtr_config; > else > cfg = &ca_config; > > - if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg)) > + if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg, > + vlarb_only)) > ret = -1; > } > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup 2010-01-26 13:26 ` Sasha Khapyorsky @ 2010-01-26 13:30 ` Hal Rosenstock [not found] ` <f0e08f231001260530o6260986dice657109f4eea637-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Hal Rosenstock @ 2010-01-26 13:30 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA On Tue, Jan 26, 2010 at 8:26 AM, Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org> wrote: > On 15:22 Mon 25 Jan , Hal Rosenstock wrote: >> >> when using optimized programming and it's supported by the switch >> >> Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >> --- >> Changes since v1: >> Add in update of vlarb tables for port 0 when optimized but no SL to VL >> tables needed to be configured on that port >> >> diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c >> index f814ea8..218e128 100644 >> --- a/opensm/opensm/osm_qos.c >> +++ b/opensm/opensm/osm_qos.c >> @@ -243,13 +243,15 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node, >> } >> >> static int qos_endport_setup(osm_sm_t * sm, osm_physp_t * p, >> - const struct qos_config *qcfg) >> + const struct qos_config *qcfg, int vlarb_only) >> { >> unsigned force_update = p->need_update || sm->p_subn->need_update; >> >> p->vl_high_limit = qcfg->vl_high_limit; >> if (vlarb_update(sm, p, 0, force_update, qcfg)) >> return -1; >> + if (vlarb_only) >> + return 0; >> >> if (!(p->port_info.capability_mask & IB_PORT_CAP_HAS_SL_MAP)) >> return 0; >> @@ -269,6 +271,7 @@ int osm_qos_setup(osm_opensm_t * p_osm) >> osm_port_t *p_port; >> osm_node_t *p_node; >> int ret = 0; >> + int vlarb_only; >> >> if (!p_osm->subn.opt.qos) >> return 0; >> @@ -292,6 +295,7 @@ int osm_qos_setup(osm_opensm_t * p_osm) >> p_tbl = &p_osm->subn.port_guid_tbl; >> p_next = cl_qmap_head(p_tbl); >> while (p_next != cl_qmap_end(p_tbl)) { >> + vlarb_only = 0; >> p_port = (osm_port_t *) p_next; >> p_next = cl_qmap_next(p_next); >> >> @@ -305,13 +309,20 @@ int osm_qos_setup(osm_opensm_t * p_osm) >> (&p_node->sw->switch_info)) >> continue; >> >> + if (ib_switch_info_get_opt_sl2vlmapping(&p_node->sw->switch_info) && >> + p_osm->sm.p_subn->opt.use_optimized_slvl && >> + !memcmp(&swe_config.sl2vl, &sw0_config.sl2vl, >> + sizeof(swe_config.sl2vl))) >> + vlarb_only = 1; >> + > > qos_extports_setup() is running port setup loop (for both VLArb *and* > SL2VL) as: > > for (i = 1; i < num_ports; i++) { > ... > } > > , starting from port '1'. > > So you case will just effectively skip any SL2VL setup for port 0 > (it was commented for V1 too). This is intended. It's not needed since it's only doing this in the wildcarded case and the wildcarding includes port 0. -- Hal > > Sasha > >> cfg = &sw0_config; >> } else if (osm_node_get_type(p_node) == IB_NODE_TYPE_ROUTER) >> cfg = &rtr_config; >> else >> cfg = &ca_config; >> >> - if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg)) >> + if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg, >> + vlarb_only)) >> ret = -1; >> } >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > 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 majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <f0e08f231001260530o6260986dice657109f4eea637-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup [not found] ` <f0e08f231001260530o6260986dice657109f4eea637-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2010-06-14 13:09 ` Hal Rosenstock [not found] ` <AANLkTilHxkXWzb-eEyWMLOtZXAnURNRvtw8-nZVL0OvW-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Hal Rosenstock @ 2010-06-14 13:09 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA Sasha, On Tue, Jan 26, 2010 at 9:30 AM, Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > On Tue, Jan 26, 2010 at 8:26 AM, Sasha Khapyorsky <sashak-smomgflXvObQFizaE/u3fw@public.gmane.orgm> wrote: >> On 15:22 Mon 25 Jan , Hal Rosenstock wrote: >>> >>> when using optimized programming and it's supported by the switch >>> >>> Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >>> --- >>> Changes since v1: >>> Add in update of vlarb tables for port 0 when optimized but no SL to VL >>> tables needed to be configured on that port >>> >>> diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c >>> index f814ea8..218e128 100644 >>> --- a/opensm/opensm/osm_qos.c >>> +++ b/opensm/opensm/osm_qos.c >>> @@ -243,13 +243,15 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node, >>> } >>> >>> static int qos_endport_setup(osm_sm_t * sm, osm_physp_t * p, >>> - const struct qos_config *qcfg) >>> + const struct qos_config *qcfg, int vlarb_only) >>> { >>> unsigned force_update = p->need_update || sm->p_subn->need_update; >>> >>> p->vl_high_limit = qcfg->vl_high_limit; >>> if (vlarb_update(sm, p, 0, force_update, qcfg)) >>> return -1; >>> + if (vlarb_only) >>> + return 0; >>> >>> if (!(p->port_info.capability_mask & IB_PORT_CAP_HAS_SL_MAP)) >>> return 0; >>> @@ -269,6 +271,7 @@ int osm_qos_setup(osm_opensm_t * p_osm) >>> osm_port_t *p_port; >>> osm_node_t *p_node; >>> int ret = 0; >>> + int vlarb_only; >>> >>> if (!p_osm->subn.opt.qos) >>> return 0; >>> @@ -292,6 +295,7 @@ int osm_qos_setup(osm_opensm_t * p_osm) >>> p_tbl = &p_osm->subn.port_guid_tbl; >>> p_next = cl_qmap_head(p_tbl); >>> while (p_next != cl_qmap_end(p_tbl)) { >>> + vlarb_only = 0; >>> p_port = (osm_port_t *) p_next; >>> p_next = cl_qmap_next(p_next); >>> >>> @@ -305,13 +309,20 @@ int osm_qos_setup(osm_opensm_t * p_osm) >>> (&p_node->sw->switch_info)) >>> continue; >>> >>> + if (ib_switch_info_get_opt_sl2vlmapping(&p_node->sw->switch_info) && >>> + p_osm->sm.p_subn->opt.use_optimized_slvl && >>> + !memcmp(&swe_config.sl2vl, &sw0_config.sl2vl, >>> + sizeof(swe_config.sl2vl))) >>> + vlarb_only = 1; >>> + >> >> qos_extports_setup() is running port setup loop (for both VLArb *and* >> SL2VL) as: >> >> for (i = 1; i < num_ports; i++) { >> ... >> } >> >> , starting from port '1'. >> >> So you case will just effectively skip any SL2VL setup for port 0 >> (it was commented for V1 too). > > This is intended. It's not needed since it's only doing this in the > wildcarded case and the wildcarding includes port 0. Any reason not to move ahead on this ? Thanks. -- Hal > -- Hal > >> >> Sasha >> >>> cfg = &sw0_config; >>> } else if (osm_node_get_type(p_node) == IB_NODE_TYPE_ROUTER) >>> cfg = &rtr_config; >>> else >>> cfg = &ca_config; >>> >>> - if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg)) >>> + if (qos_endport_setup(&p_osm->sm, p_port->p_physp, cfg, >>> + vlarb_only)) >>> ret = -1; >>> } >>> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in >> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >> 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 majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <AANLkTilHxkXWzb-eEyWMLOtZXAnURNRvtw8-nZVL0OvW-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup [not found] ` <AANLkTilHxkXWzb-eEyWMLOtZXAnURNRvtw8-nZVL0OvW-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2010-06-17 14:41 ` Sasha Khapyorsky 0 siblings, 0 replies; 5+ messages in thread From: Sasha Khapyorsky @ 2010-06-17 14:41 UTC (permalink / raw) To: Hal Rosenstock; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA On 09:09 Mon 14 Jun , Hal Rosenstock wrote: > > > > This is intended. It's not needed since it's only doing this in the > > wildcarded case and the wildcarding includes port 0. > > Any reason not to move ahead on this ? Thanks. No reason. Applied. Thanks. Sasha -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-06-17 14:41 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-25 20:22 [PATCHv2] opensm/osm_qos.c: Eliminate unneeded endport SL to VL setup Hal Rosenstock
[not found] ` <20100125202247.GA9197-Wuw85uim5zDR7s880joybQ@public.gmane.org>
2010-01-26 13:26 ` Sasha Khapyorsky
2010-01-26 13:30 ` Hal Rosenstock
[not found] ` <f0e08f231001260530o6260986dice657109f4eea637-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-14 13:09 ` Hal Rosenstock
[not found] ` <AANLkTilHxkXWzb-eEyWMLOtZXAnURNRvtw8-nZVL0OvW-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-06-17 14:41 ` Sasha Khapyorsky
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox